كيف استطيع التحكم في حاسوب آخر باستخدام لوحة المفاتيح ، Java sockets ، threads !

كيف استطيع التحكم في حاسوب آخر باستخدام لوحة المفاتيح ، Java sockets ، threads !

أفكر في برمجة لعبة بين شخصين (حاسوبين مختلفين) في كل مرة يقوم اللاعب الأول (الفريسة) بتحريك شكل (كرة مثلا) باستخدام لوحة المفاتيح و يقوم اللاعب الآخر (الصياد) بنفس الشيء محاولا اصابة الفريسة (اللحاق بها) فان كان ذلك يربح نقاطا و ان مر وقت معين ولم يستطع اللحاق بالفريسة يخسر نقاطا ...وهكذا تتم اللعبة بتبادل الأدوار في كل مرة

تكمن الصعوبة في الربط بين الحاسوبين و التحكم في واجهة البرنامج من كلا الحاسوبين و تغييرها في الوقت الحقيقي في كلاهما ..

الرجاء المساعدة بارك الله فيكم ...

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

العاب ال Real time موضوع معقد .. بدئاً من مشكلة احجام الشاشات, الى اختلاف سرعات الاجهزة, الى اختلاف سرعة الانترنت وفقد المعلومات, وضبط اللعبة ومنع محاولات الغش الخ ..

لكن سأفترض ان ما ستقوم به هو لعبة بسيطة ..

  • الخطوة الاولى لك هي برمجة برنامج دردشة بسيط بين جهازين, لتفهم موضوع ال Client/server, وقم بتشغيله على جهازك

  • الخطوة الثانية هي تشغيل البرنامج على جهازين مختلفين (ليسوا على نفس الشبكة) لتفهم موضوع فتح البورت بلراوتر او والاتصال العكسي للتخلص من الفايروول الخ ..

  • الخطوة الثالثة هي استخدام ال Threads في برنامج الدردشة السابق, (موضوع بسيط, لكن يجب ان تفهمه)

  • الخطوة الرابعة هي برمجة اللعبة بحيث يقوم الشخص بتحريك الفريسة بلكيبورد, استخدم Swing drawing ويفضل ان تطلع على موضوع ال double buffered في الرسم.

  • الخطوة الخامسة هي ان تربط اللعبة عن طريق ال client/server تماماً كبرنامج الشات, لكن الفرق هنا ان الرسالة التي سترسل من الجهاز الاول الى الثاني هي بيانات تحمل موقع الفريسة الحالي على جهاز اللاعب الاول, لتقوم اللعبة على جهاز اللاعب الثاني برسمها في نفس المكان, (هنا تظهر مشكلة اختلاف حجم الشاشة, لذلك قم بتحديد حجم شاشة اللعبة, او قم بحل المشكلة عن طريق المعادلات)

  • الخطوة السادسة هي تكرار الخطوتين الرابعة و الخامسة على الصياد, ثم ضبط الاصطدام (collision detection) بين الضياد والفريسة وزيادة النقاط.

هذا ما لدي .. والله اعلم.

-3

baraka allaho fik akhi WG

essayer tous ce qui est cité avec Java 3d ou JOGL (java for open gl) ... et n'oublier pas le mécanisme de sérialisation des objets en java, il est très utile pour transférer les coordonnées de chaque objets graphiques