PDA

View Full Version : سوال: پیدا کردن دو مجموعه عددی در ویژوال بیسیک



Amirmohammad Salmani
جمعه 13 اردیبهشت 1398, 01:30 صبح
سلام و عرض ادب و احترام دارم خدمت کاربران محترم سایت، با آرزوی بهترین‌ها برای همگی.
دوستان عزیز، بنده می‌خواهم بازی‌ای طراحی کنم بدین شکل که به عنوان مثال یک شکل (فرض مثال یک Circle) به طور خودکار از سمتی از فرم شروع به حرکت بکند (به مثابه یک گلوله شلیک شده) و شکل دیگری که کنترل آن را کاربر در اختیار خواهد داشت، در صورت برخورد با شکل پرتاب شده، باعث مرگ شکل مورد مثال و در نتیجه باخت بازیکن شود.
تا به اینجای کار مشکلی برای حرکت خودکار توپ گلوله مانند و حرکت شکلی که کاربر آن را در اختیار دارد به وسیله کلید‌های جهت نمای صفحه کلید، وجود ندارد.
مشکل بنده که مربوط به بخش اصلی این پروژه کوچک می‌شود این است که نمی‌دانم چه کدی بنویسم، که باعث شود وقتی شکل گلوله مانند ما با شکلی که کاربر آن را در اختیار دارد برخورد کرد، اتفاق خاصی که بعداً آن را طراحی می‌کنم بیفتد.
تا کنون من تنها به یک نتیجه رسیده‌ام که آن هم بازخورد حدوداً غلطی می‌دهد. (متاسفانه کدش به تازگی همین کار غلط را هم انجام نمی‌دهد و نمی‌توانم کدش را ذکر کنم) من گفته‌ام اگر خاصیت Left شکل یک، برابر شد با خاصیت Left شکل دوم، آنگاه اتفاق بیفتد فرض مثال نشان دادن یک پیغام باخت به کاربر.
منتها اشکال این کد این است که اگر شکلی که کاربر آن را کنترل می‌کند، حتی زیر گلوله هم قرار بگیرد، ارور باخت به کاربر داده می‌شود در صورتی که همانطور که گفتم من می‌خواهم شکل و گلوله در صورت برخورد (هر چند کوچک) با یکدیگر باخت صورت بگیرد.
راه حل شما برای این مسئله چیست؟

SlowCode
چهارشنبه 18 اردیبهشت 1398, 15:57 عصر
سلام
شما باید حالت های مختلفی رو بررسی کنین:
1- top شی1 بزرگتر از top شی2 و همچنین top شی1 کمتر از top شی2+ارتفاع شی2 باشه: یعنی بالای شی1 داخل شی2 هست.
2-top شی1+ارتفاع شی1 بزرگتر از top شی2 و همچنین top شی1+ارتفاع شی1 کمتر از top شی2+ارتفاع شی2 باشه: یعنی پایین شی1 داخل شی2 هست.
همزمان اینو باید برای سمت چپ و راست شی هم بررسی کنی، عین همین فقط به جای top از left استفاده کن.
در اینصورت دقیقا برخورد دوتا شی رو میتونی تشخیص بدی.