الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سلسلة تقنيات نحو الاحتراف :: كيف يكتشف الحارس اللاعب في العاب التجسس

مغلق
بدأه الكون في 14 سبتمبر 2006 · 16 رد · 2,907 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله

بسم الله نبدأ سلسلة من التقنيات نحو احتراف برمجة الالعاب

هذه السلسة ليست لها علاقة بنوع ولا بلغة البرمجة بل تهتم بالنواحي التكتيكية و الخوارزمية المستخدمة في برمجة الالعاب

اي شخص يمكنه ان يقدم برنامجه المطلوب باي لغة و باي تقنية

لمزيد من التوضيح اضغط هنا لمشاهدة الموضوع الاساسي

المطلوب من الاعضاء انزال مشاريع امثلة كيف يمكن للحارس في العاب التجسس معرفة اللاعب و اكتشافه

ملاحظة المطلوب هو ملف مصدري و ليس ملف تنفيذي

حاليا اعمل على مثال بلغة ++C و OpenGL

تحياتي

#2

هذه مشاركة من الاخ hunterxhunter طلب مني اضافة هذا الرد لانه مشغول ( ادعو له بالتوفيق) .

السلام عليكم

أحيي أخي الكريم الكون بسبب إهتمامه بالمنتدى

وأيضا من منا لايعرف بقيت الأعضاء الكرام مثل High volt

و أيضا أخي السيد

وإعدرواني على الإطالة

تطبيق حركة موجودة في العاب التجسس وهي كيف يكتشف الحارس اللاعب

تستطيعوا أن تجعلوا مدى الرأيا عبارة عن مثلث واللاعب عبارة عن نقطة أو متوازي مستطيلات إللي يناسب شكل اللاعب

ومن ثم تكشف التصادم بين النقطة والمثلث

وطبعا طول المثلث عبارة عن مدى النضر

كيف يقع اللاعب في فخ منصوب له

إذا كنتوا تقصدوا اللاعب هو الخصم تستطيعوا أن تكشفوا التصادم بين الخصم وموقع الفخ

أي إذا كان الفخ عبارة عن حفرة مصتطيلة فيصبح كشف التصادم بين مصططيلات

---------------------------

حالة اخرى :

كيف تحدث الملاحقة والمطاردة بين اللاعب والحارس

فقط زيادة في الإحداثيات ولكن لاتنسو تدوروا المجسم أي إذا كتبت

X+=0.5;

لاتنسى تاكتب بعدها

glRotatef( 0, 0.0, 1.0, 0.0 );

فقط لكي تجعل العدو ينضر إلى اليمين

أما إذا نقصت الإحداثي السيني فجعل الزاوية =180

وهكذا

طبعا هذا فقط مثال وتستطيع تطبيقه على الزوايا الفرعيه

---------------------

حالة اخرى :

كيف يمكن أن تؤثر الاضاءة على رؤية الحراس( عندما تكسر مصابيح الاضاءة لن يستطيع الحراس رؤيتك الا من مسافة معينة)

تستطيع عمل متغير لشدة للإضائة

ومن ثم تعمل مثلث للنضر وتجعل طول المثلث عبارة عن قيمت متغير شدة الإضائة

ونقطة أخيرة متغير الإضائة يزداد بزيادة المصابح وأيضا شدت إضائة كل مصباح

-----------------------

تم تعديل هذه المشاركة بواسطة الشمري في 15 سبتمبر 2006 في 06:38

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

اين الذي يقول .. متى سنبدأ :) .

------------

انا مشغول حاليا ..

لكن فكرتي باختصار هي باستخدام متوازي المستطيلات بدلا من المثلث لاكتشاف العدو .

انا الم اعرف حتى الان الفائدة من اختيار المثلث بالتحديد .

------------

الفكرة سهلة متى ما كان اللاعب والحارس لوحدها .. بدون جدران ومجسمات تمنع الرؤية .

الرد المفصل عندما اجد وقت >>>> عذر أزلي : ) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

السلام عليكم

في رأيي ان المثلث فقط لانشاء رؤية بحيث يحاول اللاعب تجنب الحراس و ليست لاختبار التصادم

التصادم يتم بين مستطيل يشمل الحارس و المثلث و مسافة خلف الحارس بقليل

انا حاليا اصمم في مرحلة حيث يجب على اللاعب ان يتخطى عدد من الحراس

داخل مبنى

طبعا طلعت لي الكثير من الافكار و راحت بي افكاري بعيد و جت بي و اهداب عيني في الشاشة

و قد اتأخر في وضع المرحلة

ارفقت صورة لتوضيح طريقتي في اكتشاف الحارس للاعب

تحياتي

post-86304-1158515591_thumb.jpg

#5

السلام عليكم, آسف لتأخري, وبعد ...

اقتباس
تستطيعوا أن تجعلوا مدى الرؤيه عبارة عن مثلث واللاعب عبارة عن نقطة أو متوازي مستطيلات إللي يناسب شكل اللاعب

تماما أخي hunterxhunter

اقتباس
التصادم يتم بين مستطيل يشمل الحارس و المثلث و مسافة خلف الحارس بقليل
اقتباس
انا الم اعرف حتى الان الفائدة من اختيار المثلث بالتحديد .

المعذره, ولكن لا أوافقكما الرأي. طبقوا على الواقع, للإنسان عينان تبعدان عن بعضهما مسافه بسيطه جدا, ولكن, كلما زادت المسافه, زاد مجال الرؤيه, على سبيل المثال, حجم الإنسان لا يقارن بحجم القمر, ولكن لماذا نستطيع ان نراه كاملا في حين اننا لا نستطيع رؤيه جدار قريب بشكل كامل؟ نفس المثال على المصباح ,,,, إلخ

إذا استخدمنا المستطيل فهذا يعني شيئين لا ثالث لهما, أننا سنجعل عرض المستطيل مساو للبعد عن عيني الحارس, أو اننا سنكبر رأس الحارس لتكوين مجال نظري معقول, وكلتا الحالتين مستحيلتين. هنا ياتي سبب استخدام المثلث. في المرفق مع المثال صوره توضح سبب استخدام المثلث.

أخي الكون/ في الصوره التي أرفقتها, هناك شيئ بسيط, المربع خلف الحارس قليلا من الأفضل أن نستخدمه كمجال سمعي لاننا لو استخدمناه كمجال نظري, فهذا مستحيل طبعا لأننا نرى ما أمامنا فقط.

وأخيرا, بالنسبة للمثال, فقد بنيته بشكل كبير على مثال أخي العزيز, EGY_TIGER مع تغييرات طفيفه جدا, إلى جانب المثال الذي طرحته في موضوع "أداة صانع المسارات".

تحياتي/ هاي فولت.

تم تعديل هذه المشاركة بواسطة High volt في 18 سبتمبر 2006 في 15:35

#6

السلام عليكم

جميل هذا النقاش

جربت مثالك اخي High volt

و لكنني لا اتفق معك في هذه الطريقة و الدليل هو نفس مثالك الذي ارفقته

جرب ان تقف بعيدا عن بداية المثلث

بعد ان يتوقف الحارس في نقاط التوقف قم بالاقتراب حتى تلاصق الحارس دون ان يكشفك

اعتماد موضوع مجال الرؤية هذا مناسب لكاميرات المراقبة

و ليس للحراس فالحارس بشر

اقتباس
أخي الكون/ في الصوره التي أرفقتها, هناك شيئ بسيط, المربع خلف الحارس قليلا من الأفضل أن نستخدمه كمجال سمعي لاننا لو استخدمناه كمجال نظري, فهذا مستحيل طبعا لأننا نرى ما أمامنا فقط.

الهدف الاساسي اننا نريد ان يكون هناك حارس في لعبة لذا فان اي حاسة واقعية يمكن استخدامها

لجعل الحارس اكثر واقعية

تحياتي

#7

مرحبا

اقتباس
جرب ان تقف بعيدا عن بداية المثلث

بعد ان يتوقف الحارس في نقاط التوقف قم بالاقتراب حتى تلاصق الحارس دون ان يكشفك

اعتماد موضوع مجال الرؤية هذا مناسب لكاميرات المراقبة

بمناسبة الإلتصاق بالحارس, فالعيب في التطبيق وليس في النظريه,كل مافي الأمر أنني لم اقم بتفعيل التصادم بين نقطتين(الحارس واللاعب), شكرا على التنبيه, وفي المرفق التعديل.

اقتباس
و ليس للحراس فالحارس بشر

وماذا في هذا؟

اقتباس
الهدف الاساسي اننا نريد ان يكون هناك حارس في لعبة لذا فان اي حاسة واقعية يمكن استخدامها

لجعل الحارس اكثر واقعية

تماما, لكن في نظري باستثناء حاسة النظر.

وأخيرا, في المرفق نفس المثال + التصادم بين الجسدين بغض النظر عن المجال البصري. هناك شيئ آخر ساحاول تعديله, عند تغيير الحارس وجهته من نقطه إلى أخرى فإن الإلتفات غير منطقي إطلاقا. لاحقا إن شاء الله.

SentrySight.zip

SentrySight.zip

#8

السلام عليكم

هذا النوع من المواضيع يعود للقناعات

البرمجة مثلها مثل الشعر قصيدة قد تعجب شخصا و لا تعجب اخر

لازلت عند رأيي في ان المستطيل انسب الحلول و اسهلها و اسرعها

مثل ما ذكرت سابقا النوع الذي تعتمده اخي High volt مناسب جدا للكاميرات

لكن للبشر غير مناسب طبعا هذا في وجهة نظري ( حتى لا يعتقد من يشاهد الموضوع انني هنا افتي )

ارفقت لك صور من مثالك الاخير يكون الحارس نائم و اللص يحاول جاهدا ان يدخل السجن قبل دخول الشتاء

ولكن لا حياة لمن تنادي

مزحة :D

hit.bmp

#9

السلام عليكم ورحمة الله وبركاته

اقتباس
لازلت عند رأيي في ان المستطيل انسب الحلول و اسهلها و اسرعها

مثل ما ذكرت سابقا النوع الذي تعتمده اخي High volt مناسب جدا للكاميرات

لكن للبشر غير مناسب طبعا هذا في وجهة نظري ( حتى لا يعتقد من يشاهد الموضوع انني هنا افتي )

انا مع راي الاخ فما قاله

وهذه مشاركة بسيطة وسريعة

تخياتي

detect_the__player.rar

BLooDY - StOrM

4c9osp1.jpg

أشهد ان لا اله الا الله واشهد ان محمد رسول الله

#10

مناقشة جميلة ..

انا جربت مثال " هي فولت " .. مثال رائع كالعادة .

لكن هذا الحل صالح لغاية " الانتهاء من التودي "

انا وقفت .. وتخيلت ان امامي snake .. المثلث عندها لن يجدي .

ممكن ان يكون snake عند اقدام الحارس فعندها لن يراه .

ولو فرضنا اننا سنضمن كل المنطقة التي تحت المثلث .. فهناك مشكلة اخرى .

لو يووجد حاجز امام اقدام الحارس .. فعندها لن يراه .

اختصر كلامي بالتالي :

- لو كانت المسألة لاعب وحارس في فضاء ... كان الامر سهل .

لكن يوجد حواجز .. وتوجد حالات خاصة للاعب .. الزحف مثلا .. كل حالة ستجد لها مشكلة .

----

بالنسبة لمثال الاخ : BLOODYSTORM فمن الواضح انك اعتمدت على مستطيل .. ولكن من الافضل ان تضع المستطيل اما اللاعب ..( مستطيل وهمي) .. وليس خلف اللاعب .

عموما لو كانت اللعبة 2d فالاعتماد على مثلث كما فعل الاخ " هاي فولت" عملي جدا . ولكن الثري دي اعتقد مشكلة .. رأي .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#11

هذا مثال قمت بكتابته للتبع في الثلاثة ابعاد ، مسألة رياضيات خصوصاً متجهات ، المرحلة ليست ملكي وجدتها من كتاب ، و الشخصية من موقع لدروس دايركت اكس www.xbdev.net .

DirectX_Engine.rar

تم تعديل هذه المشاركة بواسطة احمد صالح في 2 أكتوبر 2006 في 06:09

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#12

السلام عليكم

لا بأس, توقعت المزيد من الآراء او حتى المشاركات, لكن لا بأس, سنمضي بإذن الله.

الإخوه "الكون" و "BLOODYSTORM" و "الشمري", أحترم آرائكم, واتمنى المزيد في النقاط القادمه.

حسنا, هل من مزيد حول موضوع اللاعب والحارس؟ أم ننتقل إلى موضوع العزيز/ أحمد صالح؟

تحياتي/ هاي فولت.

تم تعديل هذه المشاركة بواسطة High volt في 3 أكتوبر 2006 في 05:38

#13

up .

حاليا أعمل على مثال ثري دي لاكتشاف العدو .. >> دعايات بايخة .

ممكن ننتقل من مثال لاخر اذا احببتم .

ولكن مثالك يا اخ احمد لم يعمل عندي .. يحصل خطأ فيغلق التطبيق ! .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#14

همم .. تحتاج دايركت اكس 9c ؟ تملكه ؟

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#15

السلام عليكم

أنا عملت مثال يوم الأربعاء ولكن الجهاز مخترب الآن فلذلك

سأضعه الأسبوع القادم إن شاء الله

أخي الشمري

إذا أرت الأعداءلايكتشفوا ماخلف الجدران يجب عليك أن تعمل الآتي

1_ تكشف التصادم بين مثلث النضر والجدار (الجدار عبارة عن قطعة مستقيمة فقط للتسهيل )

2_ توجد معادلة الجدار وهي

ص=م * س+د

لنفرض أن المعادلة

ص=1*س+1

3_ثم تختبر موقعك بالنسبة للجدار هل هو أعلى أو أسفل وذلك عن طريق تعويض إحداثياتك في معادلة الجدار

طبع نحن نريد قيمة د(الجزء المقطوع من محور الصادات ) فلذلك

د =ص-(م*س)

ومن ثم تقارن بين الجزء المقطوع من محور الصادات للجدار والجزء المقطوع من محور الصادات لموقعك

4

_ إذا كان د (موقعك ) أكبر من د (جدار )

إذاً أنت أمام الجدار

5_إذا كان د (موقعك ) أصغر من د (جدار )

إذاً أنت خلف الجدار

6_إذا تحققت الخطوة الرابعة كل اللي عليك تكشف التصادم بين إحداثيات موقعك والمثلث (لأننا ضمن أنك أمام

الجدار )

7_ إذا تحققت الخطوة الخامسة أتبع الخطوات الآتية

ملاحظة هناك ثلاث نقاط لمثلث النضر إحداهم ثابة حتى في حالت دوران المثلث وهي في موقع الرأس هذه

النقطة هي اللسوف نستخدمها في الخطوات الآتية

ملاحضة أخرى الجدار مكون من نقطتين فالنسميهم أ1 وأ2

1_توجد معادلت المتجه المكون من موقعك و رأس المثلث (النقطة اللتي تكلمنا عنها )

2_ توجد نقطة التقاطع بين متجه الجدار والمتجه الموجود في الخطو الأولى

وذلك عن طريق التعويض بالمعادلتين

3_إذا كان الإحداثي السينسي للنقطة التقاطع أصغر من الإحداثي السيني أ2 وأيضا أكبر من الإحداثي السينسي أ1 في هذه الحالة لاتكتشف التصادم لأن العدو لن يراك

4_إذا لم تتحقق النقطة الثالثة إذا فإكشف التصادم لأن هناك إحتمالين إما أن يراك أو تكون خارج المثلث فلا يراك

أرجوا أن تعدروني أنا كتبة الشرح على شكل خطوات لكي أسهل عليكم عمله كتطبيق

#16

بالنسبة لمثالك أخي أحمد فسأجربه حالما ستوفر dx9 في جهازي >>> متعاجز أن ابحث عنه :( .

--

ماشاء الله عليك أخوي hunterxhunter .. لكن بصراحة أنا استخدمت مكتبة صغيرة لهذه المهمة .. ولكن لاحقا سأحاول أن استخدم ماذكرت..

نعم ... أنا قرأت عن دور المتجهات في اكتشاف التصادم .. لكن متعاجز أن اطبق :) ..

=====

عموما بالمرفقات مثال لم يكتمل بعد ..

الهف من المثال هو ( هل يراك الحارس أم لا) .. المثال ثري دي .. واسسخدمت مكتبة لاكتشاف تصادم المثلثات .

وهذه صورة عشان نعمل دعاية وتحملون المثال :) .

post-42837-1162014109_thumb.jpg

لكن المكتبة الفيزيائية الصغبرونة أمرر لها مصفوفة model view التي أتعامل معها ..الان ..لكن أكتشفت ان المكتبة الفيزيائية لا تستقبل مصفوفة Scale كما ينبغي .. ولا اعرف الطريقة التي ادخل بها الScale الى المصفوفة التي تتعامل معها المكتبة الفيزيائية.. والمشكلة أن الدراسة بدأت الان ولا يمكنني أن ابحث عن حلول الان..

عموما تقبلوا الوضع كما هو .. والسورس كود موجود ..ولكنه ملخبط 100% .. ما عندي أي وقت لاقوم برتيبه ..بالرغم من أن أغلب الكود أمور زايدة مالها داعي ,

.. ازرار التحكم :

الاسهم لتحريك اللاعب ..

ملاحظة :

طريقة تحريك الكاميرا .. أخذتها من أحد المواقع .. أعتقد موجود اس الموقع بالكود .. اذا لم أحذفه .

Playe_Det.zip

تم تعديل هذه المشاركة بواسطة الشمري في 28 أكتوبر 2006 في 09:08

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#17

السلام عليكم

أهلا أخي الشمري

أعدرني لأني تأخرت في الرد عليك ولكن كنت مشغول والجهاز أيضا كان خربان

اللمهم

رأيت المثال

طبعا كالعادة ممتاز وجميل

ولكن مافائدة المكتبة فيزيائية في المثال يعني هل تريد عمل حركة فيزيائية أم ماذا

هذا الموضوع مغلق.

مواضيع مشابهة