مشکل در عملکرد ساخت اشیا به صورت رندوم بر روی اسپرایت خاص
#1
سلام 
من 
یه سری مگس از بعد دورین به صورت رندوم کدشا زدم که هر یک ثانیه یکی ساخته بشه
بعد چون میخواسم به صورت رندوم در یه ابعادی بعد دوربین ساخته بشه اومدم یه اسپرایت ساختم و گفتم در شروع بازی این اسپرایت در بعد دوربین ساخته بشه
به این صورت
[تصویر:  3.png]
و من این اسپرایت را در لایه ای که پارالکساش 0 است گذاشتم که همراه دوربین بره جلو
بعد اومدم کد زیر را نوشتم

[تصویر:  2.png]
ولی اتفاقی که می افته اینه
[تصویر:  rrr.gif]
  پاسخ


 سپاس شده توسط:
#2
فک کنم باید در فیلدی که زدید رندوم ، باید مختصات بدید تا اسپرایت ها ساخته بشن در اون موقعیت . یعد اگه میخواید میتونیتد با یه اونت جدا بگید وقتی ساخته شده اندازش رندوم تغییر کنه . فعلا یا باید یه عدد مشخص اونجا وارد کنید یا همین رندوم رو بزنید و در پرانتر دوتا عدد بزارید که مگس ها دراون مختصات ها ساخته بشن . فک کنم اینکارو کنید مشکل حل میشه .
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#3
(1398/2/1، 12:03 صبح)محمد 82 نوشته است: فک کنم باید در فیلدی که زدید رندوم ، باید مختصات بدید تا اسپرایت ها ساخته بشن در اون موقعیت . یعد اگه میخواید میتونیتد با یه اونت جدا بگید وقتی ساخته شده اندازش رندوم تغییر کنه . فعلا یا باید یه عدد مشخص اونجا وارد کنید یا همین رندوم رو بزنید و در پرانتر دوتا عدد بزارید که مگس ها دراون مختصات ها ساخته بشن . فک کنم اینکارو کنید مشکل حل میشه .

محمد جان اگه عدد بزنم خطا میگیره [تصویر:  4.png]
  پاسخ


 سپاس شده توسط:
#4
سلام.
مقادیری که وارد کردی  اشتباهه. رندوم دو تا مقدار میگیره اولی min دومی max.
حالا اگه فرض کنیم عرض آبجکت نارنجی ۵۰ باشه و ارتفاعش ۳۰۰ و اوریجین اش هم وسط باشه کدت میشه :
کد:
x : random(narenji.x - 25, narenji.x + 25)
y : random(narenji.y - 150, narenji.y + 150)

  پاسخ


 سپاس شده توسط: ali Co
#5
(1398/2/1، 09:22 صبح)tubac0 نوشته است: سلام.
مقادیری که وارد کردی  اشتباهه. رندوم دو تا مقدار میگیره اولی min دومی max.
حالا اگه فرض کنیم عرض آبجکت نارنجی ۵۰ باشه و ارتفاعش ۳۰۰ و اوریجین اش هم وسط باشه کدت میشه :
کد:
x : random(narenji.x - 25, narenji.x + 25)
y : random(narenji.y - 150, narenji.y + 150)

پس چرا این کد تو بازی قبلی که ساختم بهم جواب داد 
[تصویر:  sss.gif]
  پاسخ


 سپاس شده توسط:
#6
خب تو عکس آخر مهم نیست سکه ها کجا ساخته بشن اما برای سوال اولتون مهمه که مگس ها کجا ساخته بشن. یعنی محل ساخته شدنشون وابسته به شی نارنجیه.
البته برای y میتونید همون (random(LayoutHeight رو بزارید ولی برای x همون کدی که نوشتم رو قرار بدید.

راستی، با چه برنامه ای از صفحه pc گیف میگیرید ؟
  پاسخ


 سپاس شده توسط: ali Co
#7
به نظرم همون کد خودت رو بنویس ولی به جای اینکه پارالکسش رو صفر بذاری به اسپرایت رفتار anocher بده فک کنم جواب بده
کانال مطالب آرشیوی کانستراکت 2

آیدی کانال
  پاسخ


 سپاس شده توسط:
#8
کد اشتباهه چون ساخته شدن مگس هارو وابسته به اندازه شی کرده نه مختصاتش !
کد:
x : random(spr_magas_random.width)
کد بالا میاد از صفر تا اندازه عرض (x) آبجکت ( فرض کنیم 50 ) یه عدد رو برمیگردونه ! یعنی بیشترین عددی که میتونه برگردونه همون 50 هست که بدرد نمیخوره.
  پاسخ


 سپاس شده توسط: ali Co
#9
(1398/2/1، 12:22 عصر)tubac0 نوشته است: کد اشتباهه چون ساخته شدن مگس هارو وابسته به اندازه شی کرده نه مختصاتش !
کد:
x : random(spr_magas_random.width)
کد بالا میاد از صفر تا اندازه عرض (x) آبجکت ( فرض کنیم 50 ) یه عدد رو برمیگردونه ! یعنی بیشترین عددی که میتونه برگردونه همون 50 هست که بدرد نمیخوره.

آقا مگه شما نمیگید کد اشتباهه پس چرا کد بالا گیف دوم جواب داد من راسش یکم برام نامفهوم شد اگه  راه بهتر سراغ داری بگو



نمیدونم والا اگه این کد قرار باشه اشتباه باشه این میشه یکی از ایرادات کانستراکت
  پاسخ


 سپاس شده توسط:
#10
ببین دوست عزیز وقتی میگی (random(LayoutWidth یعنی یه عدد بین 0 تا اندازه عرض صفحه برگردونه ( اندازه عرض و طول صفحه رو قبلا تو مشحصات پروژه وارد کردی دیگه اگه فرض کنیم 854x450 باشه میشه رندوم یه عدد بین 0 تا 854 رو برگردونه ) اینجوری هر جایی از صفحه سکه ساخته میشه و مشکلی هم نداره اما شما میخوای مگس هات تو یه x خاص ساخته بشن ( که همون x آبجکت نارنجیه و بیرون از لیوت هست) اما شما تو کدت اومدی گفتی (random(narenji.width. خب این کد اندازه عرض آبجکت رو برمیگردونه نه مختصاتش رو. یعنی اگر فرض کنیم عرض آبجکت نارنجی 100 پیکسل باشه میاد یه عددی بین 0 تا 100 برمیگردونه و اینجوری میشه که مگس ها اول لیوت ساخته میشن در حالی که شما میخوای مگس ها بیرون از لیوت ساخته بشن یعنی قاعدتا باید یه مقدار بیشتر از 854 بدی. در واقع داری بجای narenji.x از narenji.width استفاده میکنی. 
بهترین و کوتاه ترین کدی که میتونی بزنی اینه :
کد:
x : narenji.x
y : random(narenji.height)
این کد میاد یجایی بیرون از لیوت ( جایی که آیجکت نارنجی هست ) یه مگس میسازه و دقیقا همون چیزیه که شما میخوای. y اش هم تغییری لازم نداره چون اومدی طول آبجکت نارنجی رو دقیقا اندازه ی طول صفحه گذاشتی.
امیدوارم متوجه شده باشی چون زیاد پیچیده نیست.
  پاسخ


 سپاس شده توسط: ali Co


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 230 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 180 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,596 1403/10/23، 12:10 صبح
آخرین ارسال: Tggi
  تپسل .....فروشگاه Hamidreza 3 1,932 1403/10/22، 11:57 عصر
آخرین ارسال: Tggi
  خروجی اندروید با Intel xdk ya mahdi 0 130 1403/8/25، 02:08 عصر
آخرین ارسال: ya mahdi

پرش به انجمن: