مشکل در بازی سنگ کاغذ قیچی آنلاین
#1
سلام دوستان.
یه بازی سنگ کاغذ قیچی آنلاین با پلاگین مولتی پلیر دارم میسازم.
یک آبجکت به عنوان دکمه دارم که شامل سه فریم است .
فریم صفر : دکمه سنگ
​فریم یک : دکمه کاغذ
​فریم دو : دکمه قیچی

داخل لایوت آبجکت دکمه را آوردم و فریمشو صفر کردم و ازش به عنوان دکمه سنگ استفاده کردم. دوتا ازش کپی گرفتم و فریمشون را به ترتیب یک و دو کردم که به عنوان دکمه کاغذ و قیچی استفاده کنم.
هر بار کاربر روی هر کدوم بزنه باید  انیمیشن مربوط به خودش پلی بشه.

مشکلاتم :

1- دکمه ها سینک نمیشن.مثلا 3 تا دکمه توی host دارم اما داخل peer   دو تا دکمه میاد..نمیدونم اون یکیشو چرا سینک نمیکنه.
همچنین اون دوتایی رو هم که توی peer میبینم فریمشون صفر است با اینکه من فریمشون را توی هاست تغییر داده ام.

2- چطور بفهمونم به مولتی پلیر که هر انیمیشنی توی host اجرا میشه داخل peer اجرا بشه؟
 برای ایجاد سینک بین peer و host میتونم بجای استفاده از سینک کردن variable instance فقط از broadcast massage و
send massage  استفاده کنم ؟

داخل آموزش ها در مورد تغییر فریم یک آبجکت و تغییر انیمیشن یک آبجکت و سینک آنها چیزی ندیدم.

سپاسگزارم از همه عزیزان
 

 
  پاسخ


 سپاس شده توسط:
#2
برای سوال ۱:

فکر کنم نباید کپی میگرفتی؛ باید برای هر کدوم یک اسپرایت جدید بسازی و بعد تک تکشون رو سینک کنی
اینجوری درست میشه


برای سوال ۲: دو تا متغیر سراسری بساز( یکی برای هاست ویکی برای پیر) بعد بزن که اگه هاست روی مثلا سنگ کلیک کرد متغیری که برای هاست بود یک بشه؛ اگه روی قیچی کلیک کرد دو بشه و .‌..
بعد برای پیر هم همینکارو بکن و ایندفعه متغیری که برای پیر ساختی رو تغییر بده

بعد اینوت جدید بنویس که اگه متغیر هاست ۱ بود انمیشن سنگ نمایش داده بشه و ....

برای پیر هم همینطور

بعد هر انمیشنی که توی هاست یا پیر اجرا بشه توی اون یکی هم دیده میشه

نفهمیدی بگو واضح تر بگم
  پاسخ


 سپاس شده توسط:
#3
(1400/3/7، 11:52 صبح)امیرعلی ۱۲۳' نوشته است: برای سوال ۱:

فکر کنم نباید کپی میگرفتی؛ باید برای هر کدوم یک اسپرایت جدید بسازی و بعد تک تکشون رو سینک کنی
اینجوری درست میشه


برای سوال ۲: دو تا متغیر سراسری بساز( یکی برای هاست ویکی برای پیر) بعد بزن که اگه هاست روی مثلا سنگ کلیک کرد متغیری که برای هاست بود یک بشه؛ اگه روی قیچی کلیک کرد دو بشه و .‌..
بعد برای پیر هم همینکارو بکن و ایندفعه متغیری که برای پیر ساختی رو تغییر بده

بعد اینوت جدید بنویس که اگه متغیر هاست ۱ بود انمیشن سنگ نمایش داده بشه و ....

برای پیر هم همینطور

بعد هر انمیشنی که توی هاست یا پیر اجرا بشه توی اون یکی هم دیده میشه

نفهمیدی بگو واضح تر بگم

 
متشکرم.
من یه متغیر گلوبال به نام HostAnimation تعریف کردم  و در گروه هاست نوشتم هر وقت روی دکمه سنگ کلیک شد متغیر HostAnimation  برابر یک شود. و دوباره نوشتم اگر این متغیر یک شد انیمیشن سنگ اجرا شود..اما چطور برای peer این انیمیشن به نمایش در میاد؟ آخه امتحان کردم نشد.
 
  پاسخ


 سپاس شده توسط:
#4
از طریق send message و همون broadcast . باید باهاشون ور برید تا درست بشن . چون یخورده بازی انلاین پیچیده است فک نکنم کسی بتونه درست راهنمایی کنه . اگر راهنمایی درست میخواید باید سورس رو بزارید تا بشه روش نظر داد . وگرنه الان ما نمیدونیم شما چه راه و اونتی رو برای ارتباط و ... نوشتید .
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#5
(1400/3/7، 03:19 عصر)محمد 82' نوشته است: از طریق send message و همون broadcast . باید باهاشون ور برید تا درست بشن . چون یخورده بازی انلاین پیچیده است فک نکنم کسی بتونه درست راهنمایی کنه . اگر راهنمایی درست میخواید باید سورس رو بزارید تا بشه روش نظر داد . وگرنه الان ما نمیدونیم شما چه راه و اونتی رو برای ارتباط و ... نوشتید .

 
بله مرسی از شما.
با سورس ور رفتم و با send massage و broadcast بدون نیاز به متغیر اینستنس و متغیر گوبال ظاهرا نتیجه مد نظرم رو گرفتم اما در چیزی که توی ویدیوهای آموزشی دیدم تناقض پیدا کردم با کاری که من کردمو و نتیجه گرفتم...شاید هنوز چون اشراف کامل ندارم اینجوری دارم تناقض میبینم.

این شکلی در واقع ایونت نوشتم .گفتم اگر در هاست روی دکمه سنگ زده شد انیمیشن سنگ اجرا بشه که تا اینجاش راحته..برای اینکه همین انیمیشن سنگ رو هم peer ببینه گفتم وقتی هاست روی دکمه سنگ میزنه یه broadcast با یک نگ خاص و با متن خالی بفرسته واسه peer .
در گروه peer هم گفتم اگر مسیج خالی با همون تگ دریافت شد انیمیشن سنگ اجرا بشه..
درسته؟

 
  پاسخ


 سپاس شده توسط:
#6
(1400/3/7، 01:50 عصر)mansoor22 نوشته است:
(1400/3/7، 11:52 صبح)امیرعلی ۱۲۳' نوشته است: برای سوال ۱:

فکر کنم نباید کپی میگرفتی؛ باید برای هر کدوم یک اسپرایت جدید بسازی و بعد تک تکشون رو سینک کنی
اینجوری درست میشه


برای سوال ۲: دو تا متغیر سراسری بساز( یکی برای هاست ویکی برای پیر) بعد بزن که اگه هاست روی مثلا سنگ کلیک کرد متغیری که برای هاست بود یک بشه؛ اگه روی قیچی کلیک کرد دو بشه و .‌..
بعد برای پیر هم همینکارو بکن و ایندفعه متغیری که برای پیر ساختی رو تغییر بده

بعد اینوت جدید بنویس که اگه متغیر هاست ۱ بود انمیشن سنگ نمایش داده بشه و ....

برای پیر هم همینطور

بعد هر انمیشنی که توی هاست یا پیر اجرا بشه توی اون یکی هم دیده میشه

نفهمیدی بگو واضح تر بگم

 
متشکرم.
من یه متغیر گلوبال به نام HostAnimation تعریف کردم  و در گروه هاست نوشتم هر وقت روی دکمه سنگ کلیک شد متغیر HostAnimation  برابر یک شود. و دوباره نوشتم اگر این متغیر یک شد انیمیشن سنگ اجرا شود..اما چطور برای peer این انیمیشن به نمایش در میاد؟ آخه امتحان کردم نشد.
 



 دلیلش اینه فقط توی گروه هاست نوشتی

باید یک گروه جدید بسازی و اسمشو بزاری (all) و چیز هایی که باید برای هر دو نمایش داده بشه رو توش بزاری

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

(1400/3/7، 03:34 عصر)mansoor22 نوشته است:
(1400/3/7، 03:19 عصر)محمد 82' نوشته است: از طریق send message و همون broadcast . باید باهاشون ور برید تا درست بشن . چون یخورده بازی انلاین پیچیده است فک نکنم کسی بتونه درست راهنمایی کنه . اگر راهنمایی درست میخواید باید سورس رو بزارید تا بشه روش نظر داد . وگرنه الان ما نمیدونیم شما چه راه و اونتی رو برای ارتباط و ... نوشتید .

 
بله مرسی از شما.
با سورس ور رفتم و با send massage و broadcast بدون نیاز به متغیر اینستنس و متغیر گوبال ظاهرا نتیجه مد نظرم رو گرفتم اما در چیزی که توی ویدیوهای آموزشی دیدم تناقض پیدا کردم با کاری که من کردمو و نتیجه گرفتم...شاید هنوز چون اشراف کامل ندارم اینجوری دارم تناقض میبینم.

این شکلی در واقع ایونت نوشتم .گفتم اگر در هاست روی دکمه سنگ زده شد انیمیشن سنگ اجرا بشه که تا اینجاش راحته..برای اینکه همین انیمیشن سنگ رو هم peer ببینه گفتم وقتی هاست روی دکمه سنگ میزنه یه broadcast با یک نگ خاص و با متن خالی بفرسته واسه peer .
در گروه peer هم گفتم اگر مسیج خالی با همون تگ دریافت شد انیمیشن سنگ اجرا بشه..
درسته؟

 



 دوست عزیز همینکاری که در پیام اخرم گفتم رو انجام بدید شما؛ حتما درست میشه ؛ نیازی هم به این کارا نیست که باعث باشه بازیتون پیچیده بشه

من در پیام اولم اشتباه جواب دادم چون شما کامل توضیح نداده بودید که ایونت مورد نظر رو فقط توی گروه هاست نوشتید و گرنه همون اول راهنمایی میکردم
  پاسخ


 سپاس شده توسط: FARZAD BLACK
#7
مشکلتون حل شد؟
  پاسخ


 سپاس شده توسط:
#8
(1400/3/9، 11:47 عصر)امیرعلی ۱۲۳' نوشته است: مشکلتون حل شد؟

 

سلام وقتتون بخیر.
نمونه اولیه بازی رو ساختم.فقط از instance variable و broadcast برای ارتباط peer و host استفاده کردم.
بازی توی تست کانسترکت بصورت آنلاین روی دو دیوایس درست کار کرد.اما وقتی توی گیتهاب آپلودش کردم تنها درصورتی بصورت دونفره میشه بازی کرد که روی یک دیوایس مثلا با گوگل کروم با دو تب ،قابل انجام است.
لینک تست بازی:
https://elegantgames.github.io/skg/
لطفا دوستان چک کنند میتونند آنلاین بازی کنند یا نه؟ مچکرم.



 
  پاسخ


 سپاس شده توسط:
#9
(1400/3/13، 11:13 عصر)mansoor22 نوشته است:
(1400/3/9، 11:47 عصر)امیرعلی ۱۲۳' نوشته است: مشکلتون حل شد؟

 

سلام وقتتون بخیر.
نمونه اولیه بازی رو ساختم.فقط از instance variable و broadcast برای ارتباط peer و host استفاده کردم.
بازی توی تست کانسترکت بصورت آنلاین روی دو دیوایس درست کار کرد.اما وقتی توی گیتهاب آپلودش کردم تنها درصورتی بصورت دونفره میشه بازی کرد که روی یک دیوایس مثلا با گوگل کروم با دو تب ،قابل انجام است.
لینک تست بازی:
https://elegantgames.github.io/skg/
لطفا دوستان چک کنند میتونند آنلاین بازی کنند یا نه؟ مچکرم.



 


میشه!
 
فقط شما بازی انلاین نساختید
این لینکی که دادید داره با ربات بازی میکنه
  پاسخ


 سپاس شده توسط:
#10
(1400/3/15، 10:11 صبح)امیرعلی ۱۲۳' نوشته است:
(1400/3/13، 11:13 عصر)mansoor22' نوشته است:
(1400/3/9، 11:47 عصر)امیرعلی ۱۲۳' نوشته است: مشکلتون حل شد؟


 

سلام وقتتون بخیر.
نمونه اولیه بازی رو ساختم.فقط از instance variable و broadcast برای ارتباط peer و host استفاده کردم.
بازی توی تست کانسترکت بصورت آنلاین روی دو دیوایس درست کار کرد.اما وقتی توی گیتهاب آپلودش کردم تنها درصورتی بصورت دونفره میشه بازی کرد که روی یک دیوایس مثلا با گوگل کروم با دو تب ،قابل انجام است.
لینک تست بازی:
https://elegantgames.github.io/skg/
لطفا دوستان چک کنند میتونند آنلاین بازی کنند یا نه؟ مچکرم.



 

 


میشه!
 
فقط شما بازی انلاین نساختید
این لینکی که دادید داره با ربات بازی میکنه


 
سلام.بازی آنلاین است.بازی را روی یک دیوایس انجام بدین..یعنی نفر اول با کروم وارد شود و نفر دوم نیز با همان سیستم با یک تب دیگه از کروم وارد شود..


 
  پاسخ


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


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 229 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 176 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,595 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

پرش به انجمن: