View Full Version : تشخیص برخورد دو shape
MohsenPy
یک شنبه 27 آذر 1390, 17:26 عصر
سلام
دوستان یه بازی هواپیمای نوشتم تو تشخیص برخورداشون موندم میدونم باید با مقایسه top و left ابجت ها انجام بشه ولی چجوریشو نمیدونم.
دوستان خواهشا زوتر جواب بدین این پروژمه باید تا فردا تکمیل بشه.:قلب:
vb6_man
یک شنبه 27 آذر 1390, 17:42 عصر
من داشتم روزنامه می خوندم وگرنه جواب نهایتا تا 3 دقیقه بعد داده می شه
خب اگه می دونی چرا نمی نویسی؟
من قبلا نوشتمش
همون هواپیما که مشکل فنی داره و با ماوس باید هدایتش کنی که به مانع ها نخوره رو مگه نمی گی؟:لبخند:
بازی فلشش رو من دیدیم بعد خودم نوشتمش
الان گشتم دیدم ندارمش
خب فقط کافیه که محدوده هواپیما و جسم رو مشخص کنی
اگه این 2 تا تو محدوده هم باشد یعنی خوردن به هم
حالا محدوده چه جوری مشخص میشه؟
x1=Pic1.Left
x2=Pic1.Left + Pic1.Width
y1=Pic1.top
Y2=Pic1.Top+Pic1.Height
الان از X1 تا X2 چه محدوده ای هست؟
اگه خدایی نکرده یه شی دیگه Left اون تو این محدوده باشه چی می شه؟
هیچش نمی شه:قهقهه:
چون در این صورت فقط مشخص میشه که از نظر X با هم موازی هستن
حالا اگه Top همون شی در محدوده Y1 تا Y2 باشه، اونوقت چی می شه؟
هی چی نمی شه:گریه:
نه ایندفه گول خوردی:شیطان:
یه چیزی میشه
یعنی شی به Pic خورد:بامزه:
البته یه اشکال کوچولو هم در کار گذتشتم بمونه که باید خودت روش کار کنی
اصلا اگه فهمیدی کجاست
من اصلا کلا لقمه آماده دوست ندارم:قلب:
هرچی باشه از Google it بهتره:متعجب::قهقهه:
Mr'Jamshidy
یک شنبه 27 آذر 1390, 18:08 عصر
من داشتم روزنامه می خوندم وگرنه جواب نهایتا تا 3 دقیقه بعد داده می شه
خب اگه می دونی چرا نمی نویسی؟
من قبلا نوشتمش
همون هواپیما که مشکل فنی داره و با ماوس باید هدایتش کنی که به مانع ها نخوره رو مگه نمی گی؟:لبخند:
بازی فلشش رو من دیدیم بعد خودم نوشتمش
الان گشتم دیدم ندارمش
خب فقط کافیه که محدوده هواپیما و جسم رو مشخص کنی
اگه این 2 تا تو محدوده هم باشد یعنی خوردن به هم
حالا محدوده چه جوری مشخص میشه؟
x1=Pic1.Left
x2=Pic1.Left + Pic1.Width
y1=Pic1.top
Y2=Pic1.Top+Pic1.Height
الان از X1 تا X2 چه محدوده ای هست؟
اگه خدایی نکرده یه شی دیگه Left اون تو این محدوده باشه چی می شه؟
هیچش نمی شه:قهقهه:
چون در این صورت فقط مشخص میشه که از نظر X با هم موازی هستن
حالا اگه Top همون شی در محدوده Y1 تا Y2 باشه، اونوقت چی می شه؟
هی چی نمی شه:گریه:
نه ایندفه گول خوردی:شیطان:
یه چیزی میشه
یعنی شی به Pic خورد:بامزه:
البته یه اشکال کوچولو هم در کار گذتشتم بمونه که باید خودت روش کار کنی
اصلا اگه فهمیدی کجاست
من اصلا کلا لقمه آماده دوست ندارم:قلب:
هرچی باشه از Google it بهتره:متعجب::قهقهه:
این روش کاملا اشتباهه تو انجمن در موردش بحث شده با API تشخیص داده میشد
و اما چرا اشتباه؟
من بازی شما رو ندیدم اما هواپیمای شما شبیه مربع که نیست پس یعنی قسمت های شفاف داره
پس با این روش اگر قسمت های شفاف اشیا با هم برخورد کنن باز هم رویداد برخورد اجرا میشه در صورتی که کابر هیچ برخوردی نداشته
دمت گرم کارم راه افتاد.:قلب:
MohsenPy
یک شنبه 27 آذر 1390, 18:14 عصر
میدونم داداش اتفاقا یه نمونه تشخیص برخورد با api رو گیر اوردم سورسشو ولی این پروژه ما ارزش این وقت گذاشتنو نداشت بعدشم چرا اتفاقا من که از تصاویر png برای shape ها استفاده نکردم که قسمت شفاف داشته باشه چون vb6 قبوال نمیکنه مجبور شدم پس زمینه هواپیما و فرمو سفید کنم که شفاف به نظر برسه.و فعلا این روش برام بهترین روشه.
ممنون.:قلب:
Mr'Jamshidy
یک شنبه 27 آذر 1390, 18:18 عصر
میدونم داداش اتفاقا یه نمونه تشخیص برخورد با api رو گیر اوردم سورسشو ولی این پروژه ما ارزش این وقت گذاشتنو نداشت بعدشم چرا اتفاقا من که از تصاویر png برای shape ها استفاده نکردم که قسمت شفاف داشته باشه چون vb6 قبوال نمیکنه مجبور شدم پس زمینه هواپیما و فرمو سفید کنم که شفاف به نظر برسه.و فعلا این روش برام بهترین روشه.
ممنون.:قلب:
:متفکر: مگه VB تصاویر GIF رو پشتیبانی نمیکنه؟
مگه GIF شفاف رو پشتیبانی نمیکنه؟
حتما باید PNG باشه؟
vb6_man
یک شنبه 27 آذر 1390, 18:19 عصر
مشکل همین بود:بامزه:
MohsenPy
یک شنبه 27 آذر 1390, 18:30 عصر
خب حالا طبق گفته شما gif رو هم قبول میکنه اوکی ولی خب چه فرقی میکنه؟ شما هر شی از جمله imgae و ... و بزاری رو فرم و یک تصویر png یا gif بدی بهش bounding اون شی مربع یا دایره و... هست و این مدل تشخیص برخورد با طول و عرضش به دردش نمیخوره و باید از راه api وارد شد.
vb6_man
یک شنبه 27 آذر 1390, 18:46 عصر
تو محل ما هم هواپیما ها و هم مانع ها مربعی هستن:افسرده:
Jamshidy مگه این دوستمون گفت یک بشقاب پرنده به مانع برخورد می کنه؟:متعجب::بامزه:
گفتم که مشکل همین بود
اینکه جاهای شفاف ....
بهترین روش اینه که برای تشخیص از API استفاده کنی
یکی دیگه از روش ها اینه که دقیقا تصویر رو ببری ( نه اینکه ببری خونت ، منظورم اینه که برش بدی:قلب:) ولی به دردسرش نمی ارزه
Jamshidy عزیز؟ Google it کردی؟:گریه:
MohsenPy
یک شنبه 27 آذر 1390, 18:54 عصر
اصلا اگه بخوایم تخصصی تر وارد این مبحث بشیم بهترین روش استفاده از Collision detection در کتابخانه های فیزیک هست که ولی نه api نه این بدرد نمیخورن چون اصلا بازی نوشتن با ویژوال بیسیک کار احمقانه ای هستش مگه اینکه پروژت باشه که بخوای ببری نمره بگیری مثل من:لبخند: و همون روش top و left بهترین روشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.