رفتن به مطلب
  • 0

(پرسش) تشخیص عبور یک تصویر از لبه های یک تصویر png در بیسیک فور اندروید.


ahmad36

سوال

سلام دوستان خسته نباشید.

من دارم یک بازی پینگ پنگ در b4a میسازم. یک راکت و یک توپ با فرمت png دارم. راکت ثابت هست و توپ متحرک. میخوام وقتی توپ از لبه های راکت بیرون رفت بازی متوقف بشه. چجوری باید خروج توپ از لبه های راکت تشخیص داده بشه؟

ممنون میشم اگه لطف کنید و راهنمایی بکنید! سپاس!

 

z5uv_screenshot_2019-08-15-16-52-10-246_

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در در 25 مرداد 1398 در 19:22، ahmad36 گفته است :

با سپاس از پاسخ شما، اگر تصویر به صورت منظم یعنی مربع یا مستطیل باشه این کد درسته اما تصویر راکت منحنی داره و با این کد جور در نمیاد، یعنی اگه توپ از گوشه راکت بیرون هم بره چون هنوز درون imageview قرار داره اتفاقی نمیفته! من میخوام تشخیص دقیقتری انجام بشه.

پاسخ دوست عزیزمون درست بود اما چیزی که شما میخواین به این راحتی نیست، عکس png که لبه راکت رو گرد نشون میده، صرفا برای نمایش به کاربر هست، ولی ما که میدونیم این یک shape نیست که مثلا 8 ضلعی باشه و برنامه گوشه گرد رو تشخیص بده، هر فرمت عکسی که شما بیارید بازم همون مستطیله.

مگر اینکه یک ویو با یک کتابخونه مخصوص رسم بشه که به شکل راکت در بیاد بعدش عکس راکت رو میذارید روش، ولی کدهاتونو با عکس نمی سنجید، با اون ویویی که چند ضلعی هست کد نویسی میکنید، برای این کار میشه لی اوت رو با xml ساخت و تگ path یعنی مسیر میشه هر شکلی که بخوای باش در بیاری و اون فایل xml رو با کتابخانه xml layout builder بیاری داخل b4a ، که برای راهنمایی بیشتر توصیه میکنم متنی شبیه این رو گوگل کنید: رسم ویو چندضلعی در اندروید یا جاوا

البته کتابخانه هایی هم برای بیسیک اومده که بازی سازی رو خیلی آسون کرده که البته من خیلی باشون آشنایی ندارم، GameView - Physic - libGDX که سمپل و نمونه کدهاشونو من از همین انجمن دانلود کردم..

ایشاله موثر باشه..

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 24 شهریور 1398 در 10:53، Radiomedia گفته است :

پاسخ دوست عزیزمون درست بود اما چیزی که شما میخواین به این راحتی نیست، عکس png که لبه راکت رو گرد نشون میده، صرفا برای نمایش به کاربر هست، ولی ما که میدونیم این یک shape نیست که مثلا 8 ضلعی باشه و برنامه گوشه گرد رو تشخیص بده، هر فرمت عکسی که شما بیارید بازم همون مستطیله.

مگر اینکه یک ویو با یک کتابخونه مخصوص رسم بشه که به شکل راکت در بیاد بعدش عکس راکت رو میذارید روش، ولی کدهاتونو با عکس نمی سنجید، با اون ویویی که چند ضلعی هست کد نویسی میکنید، برای این کار میشه لی اوت رو با xml ساخت و تگ path یعنی مسیر میشه هر شکلی که بخوای باش در بیاری و اون فایل xml رو با کتابخانه xml layout builder بیاری داخل b4a ، که برای راهنمایی بیشتر توصیه میکنم متنی شبیه این رو گوگل کنید: رسم ویو چندضلعی در اندروید یا جاوا

البته کتابخانه هایی هم برای بیسیک اومده که بازی سازی رو خیلی آسون کرده که البته من خیلی باشون آشنایی ندارم، GameView - Physic - libGDX که سمپل و نمونه کدهاشونو من از همین انجمن دانلود کردم..

ایشاله موثر باشه..

سپاسگزارم از راهنمایی شما دوست گرامی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام فرض می کنم که سوال شما این بوده* و جواب میدم!

* شما با سنسور ها اومدید لفت و تاپ توپ رو تغیر می دید و می خواهید اگر توپ از صفحه راکت خارج شد برنامه متوقف بشه!؟؟!

خب شما اول تصویرتون رو کراپ کنید تا حاشیه اضافه نداشته باشه بعد بیایداز طریق left و  widthعرض تصویر و topو height تصویر تشخیص بدید توپ خارج شده یا نه

dim toopLeft,toopTop AS int


if toopLeft+img.width <lmg.left Or toopTop <img.top+img.height OR toopLeft+img.width >img.width Or toopTop >img.height then
log("next")
end if

کد چک نکردم اما روش کار همینه که عرض کردم

توی html چیز های تحت عنوان SVG  و map داریم که میشه مقدار مشخصی از تصویر انتخاب کرد اما شما توی بیسک باید با شرط گذاشتن  به مقدار تقریبی خودتون برسید

یا علی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در هم اکنون، hosseinsheikhbarani گفته است :

سلام فرض می کنم که سوال شما این بوده* و جواب میدم!

* شما با سنسور ها اومدید لفت و تاپ توپ رو تغیر می دید و می خواهید اگر توپ از صفحه راکت خارج شد برنامه متوقف بشه!؟؟!

خب شما اول تصویرتون رو کراپ کنید تا حاشیه اضافه نداشته باشه بعد بیایداز طریق left و  widthعرض تصویر و topو height تصویر تشخیص بدید توپ خارج شده یا نه


dim toopLeft,toopTop AS int


if toopLeft+img.width <lmg.left Or toopTop <img.top+img.height OR toopLeft+img.width >img.width Or toopTop >img.height then
log("next")
end if

کد چک نکردم اما روش کار همینه که عرض کردم

توی html چیز های تحت عنوان SVG  و map داریم که میشه مقدار مشخصی از تصویر انتخاب کرد اما شما توی بیسک باید با شرط گذاشتن  به مقدار تقریبی خودتون برسید

یا علی

با سپاس از پاسخ شما، اگر تصویر به صورت منظم یعنی مربع یا مستطیل باشه این کد درسته اما تصویر راکت منحنی داره و با این کد جور در نمیاد، یعنی اگه توپ از گوشه راکت بیرون هم بره چون هنوز درون imageview قرار داره اتفاقی نمیفته! من میخوام تشخیص دقیقتری انجام بشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...