Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> ساخت بازی های کامپیوتری به وسیله نرم افزار Game Maker -> تشخيص برخورد در gm
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

تشخيص برخورد در gm
نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


1 شنبه 6 شهريور 1384 - 20:06
پاسخ بصورت نقل قول
سلام:
طي پروژه ساخت tetris با gm براي توقف توپها ( بلوكها ) به مشكلي برخوردم كه اميدوارم كمك كنيد.
ابتدا فكر كردم كه مي توانم از گزينه solid در object properties استفاده كنم ولي نشد توپها با كمال پر رويي از هم رد ميشوند. اگر solid به اين معنا نيست پس چيه؟ چرا تو مقاله 8 gm كه درختها solid هستند. آدمكه ازشون رد نميشه؟ اما وقتي به ما ميرسه همه از هم رد ميشن.
و اما بعد گفتم از event برخورد و set vert speed to 0 استفاده ميكنم اما باز هم بسته به سرعت برخورد شي ها با فاصله از هم مي ايستند.
اگر راهي در ذهن داريد بفرماييد.
با تشكر
eta

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
zaghaghi
بازی ساز
بازی ساز


تاريخ عضويت: 5 شنبه 6 مرداد 1384
تعداد ارسالها: 120


1 شنبه 6 شهريور 1384 - 22:52
پاسخ بصورت نقل قول
اگر برای خود توبها تعریف کنی که به خودشون خوردن فرمان bounce against object اجرا بشه فکر کنم مشکلت حل بشه Laughing

_________________
becoming number one is easier than remaining number one
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Ali
مدیر کل
مدیر کل


تاريخ عضويت: شنبه 20 تير 1383
تعداد ارسالها: 2983
محل سكونت: On the edge


1 شنبه 6 شهريور 1384 - 23:51
پاسخ بصورت نقل قول
برای اینکه دو تا جسم موقع برخورد توی هم نرن باید یکی از اجسام یا هر دو تا ( بسته به نوع استفاده ) از نوع solid باشن... برای اینکار میتونین از خاصیت solid = true or false در جایی که لازمه استفاده کنید... مثلا وقتی بک بلوک ایجاد میشه و در حال سقوطه جامد نیست ولی وقتی به انتهای صحنه بازی میرسه و سرعتش صفر میشه دارای خصوصیت solid میشه تا بلوک بعدی که داره سقوط میکنه اونرو به عنوان یک جسم جامد بشناسه و روش وایسته...

برای تشخیص برخورد هم میتونید از دستورات تشخیص برخورد GM مثل

move_bounce_solid(adv)
Bounce against solid instances, like the corresponding action. adv indicates whether to use advance bounce, that also takes slanted walls into account.
move_bounce_all(adv)
Bounce against all instances, instead of just the solid ones.
move_contact_solid(dir,maxdist)
Move the instance in the direction until a contact position with a solid object is reached. If there is no collision at the current position, the instance is placed just before a collision occurs. If there already is a collision the instance is not moved. You can specify the maximal distance to move (use a negative number for an arbitrary distance).
move_contact_all(dir,maxdist)
Same as the previous function but this time you stop at a contact with any object, not just solid objects.
move_outside_solid(dir,maxdist)
Move the instance in the direction until it no longer lies within a solid object. If there is no collision at the current position the instance is not moved. You can specify the maximal distance to move (use a negative number for an arbitrary distance).
move_outside_all(dir,maxdist)
Same as the previous function but this time you move until outside any object, not just solid objects.

و اینها :

place_free(x,y)
Returns whether the instance placed at position(x,y) is collision-free. This is typically used as a check before actually moving to the new position.
place_empty(x,y)
Returns whether the instance placed at position (x,y) meets nobody. So this function takes also non-solid instances into account.
place_meeting(x,y,obj)
Returns whether the instance placed at position (x,y) meets obj. obj can be an object in which case the function returns true is some instance of that object is met. It can also be an instance id, the special word all meaning an instance of any object, or the special word other.


استفاده کنید...

_________________
پی سی گیمرز - آرشيو بزرگ بازی های کامپیوتری
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


2 شنبه 7 شهريور 1384 - 09:34
پاسخ بصورت نقل قول
نقل قول:
برای اینکه دو تا جسم موقع برخورد توی هم نرن باید یکی از اجسام یا هر دو تا ( بسته به نوع استفاده ) از نوع solid باشن... برای اینکار میتونین از خاصیت solid = true or false در جایی که لازمه استفاده کنید... مثلا وقتی بک بلوک ایجاد میشه و در حال سقوطه جامد نیست ولی وقتی به انتهای صحنه بازی میرسه و سرعتش صفر میشه دارای خصوصیت solid میشه تا بلوک بعدی که داره سقوط میکنه اونرو به عنوان یک جسم جامد بشناسه و روش وایسته...

من سه تا objevt دارم ball و( ball_stoped(solid و( cur(controler
توپ ها چرا در اينجا با وجود solid بودن ball_stoped از اون رد ميشند.

نقل قول:
و اینها :
place_free(x,y)
Returns whether the instance placed at position(x,y) is collision-free. This is typically used as a check before actually moving to the new position.
place_empty(x,y)
Returns whether the instance placed at position (x,y) meets nobody. So this function takes also non-solid instances into account.
place_meeting(x,y,obj)
Returns whether the instance placed at position (x,y) meets obj. obj can be an object in which case the function returns true is some instance of that object is met. It can also be an instance id, the special word all meaning an instance of any object, or the special word other.

با استفاده از اين دستور ها اين بار توپها برعكس دفعه قبل كه با فاصله از هم ميايستادند كمي توي هم ميروند.
در واقع مشكل دقيق نبودن زمان اجراي event برخورد است .

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


5 شنبه 10 شهريور 1384 - 10:27
پاسخ بصورت نقل قول
و اما جواب سوال از خودم:Evil or Very Mad
از آنجا كه زمان اجراي event برخورد دقيق نمي باشد و اندازه توپها هم يكي است مي توان براي اطمينان از مماس شدن توپ ها به هم از snap to grid action استفاده كرد.
با تشكر از همه دوستان كه كمك كردند .Laughing

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
omidreza
کاربر جدید
کاربر جدید


تاريخ عضويت: 2 شنبه 7 آذر 1384
تعداد ارسالها: 9
محل سكونت: شيراز


شنبه 12 آذر 1384 - 11:28
پاسخ بصورت نقل قول
يه سوال داشتم .اين كه ميگن گيم ميكر لازم به نوشتن دستور نداره اصلا اينطوري نبود
. حالا يك سري كد نويسي داره. اين همه كد را بايد حفظ كرد يا يه جايي نوشت و ازشون
استفاده كرد .در ضمن اين برنامه سي دي اوزشي داره يا نه . جوابمو برام اف بزاريد چون نميرسم زياد به اين سايت سر بزنم .
ali_boys20002000@yahoo.com

_________________
زندگي را دوست دارم
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
maga
کاربر جدید
کاربر جدید


تاريخ عضويت: 1 شنبه 6 آذر 1384
تعداد ارسالها: 1
محل سكونت: nuor


شنبه 12 آذر 1384 - 16:03
پاسخ بصورت نقل قول
mordan behtar ast ya zendeh mandan PDT_001 Surprised

_________________
maga
magamed
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
mory
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 3 شنبه 3 خرداد 1384
تعداد ارسالها: 1187


1 شنبه 13 آذر 1384 - 05:35
پاسخ بصورت نقل قول
نقل قول:

و اما جواب سوال از خودم:
از آنجا كه زمان اجراي event برخورد دقيق نمي باشد و اندازه توپها هم يكي است مي توان براي اطمينان از مماس شدن توپ ها به هم از snap to grid action استفاده كرد.
با تشكر از همه دوستان كه كمك كردند


احتمالا ايشون تو اين مدت جوابشون رو گرفتن . براي بقيه ميگم .
اگر اشياي شما شكل هاي عجيب داشت حتما در قسمت اسپريت گزينه presice collision checking رو فعال كنيد . همين . همه مشكلتون رو حل ميكنه .

نقل قول:

يه سوال داشتم .اين كه ميگن گيم ميكر لازم به نوشتن دستور نداره اصلا اينطوري نبود
. حالا يك سري كد نويسي داره. اين همه كد را بايد حفظ كرد يا يه جايي نوشت و ازشون
استفاده كرد .در ضمن اين برنامه سي دي اوزشي داره يا نه . جوابمو برام اف بزاريد چون نميرسم زياد به اين سايت سر بزنم .


عزيزم اين درست نيست . اين فكر كه ميشه بدون برنامه نويسي بازي ساخت يك اشتباه بزرگه . كد هاي گيم ميكر به نظر من آسون ترين و واضح تر سبك كد نويسيه . ياد گرفتن هم نميخواد . فقط بايد بدوني گيم ميكر چه امكاناتي داره و دستوراش به چه دردهايي ميخورن . اگه زبانت خوب نيست بايد بگم واقعا مشكله و اگه مشكل زبان نداره اين برنامه واقعا آسونه . در ضمن جوابتم همين جا دادم كه هر وقت اومدي اينجا جوابتو بخوني . هر كه را طاووس خواهد ....

_________________
و مهم نيست كي پنيرتو دزديده قورباغتو قورت بده .

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |