مشکلی در کار با متغییر ها ؟
#1
سلام.

من میخوام وسط بازی کلیک راست دیگه عمل نکنه
حالا میتونه دلایل مختلفی داشت باشه ، کلیک راست قابلیت خاصی بوده
که برای بازیکن در نظر گرفتهشده و فقط 10 ثانیه دوام میاره

یا اینکه بازیکن خسته شده و دیگه ضربه نمیزنه و...
برای همه ی این موارد و چندین موارد دیگه راه شمردن زمان با کمک متغییرهاست
ولی فعلاً با زمان کاری نداریم و فقط یه مثال بود

راه اینکه متغییر خستگی بازیکن رو نشون بده یا تموم شدن تیرها رو نشون بده ساخت یک متغییر عددی هست

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

خودم همین حالا داشتم به این فکر میکردم که تعداد گلوله های نابود شده رو بشمره
که اینم فایده نداره چون بین شلیک آخر تا نابودی گلوله فاصله ای هست و در این بین
میشه بازم شلیک کرد (دستور هنوز اجرا میشه)


اگه دستوری باشه که بتونه خود گلوله ها رو بشمره مسئله حل میشه
اما چه دستوری میتونه انی کار رو انجام بده ؟


-
-
  پاسخ


 سپاس شده توسط:
#2
خودم دارم به این فکر میکنم که هر اجرای گلوله ای رو بشمره اما دقیق نمی دونم چطور؟
یعنی کلیک و دستور شلیک داده بشه حالا یکی بشمره ...

-
-
  پاسخ


 سپاس شده توسط:
#3
از یک متغییر کمکی استفاده کن برای کلیک راست.
باید از رویداد فشار داده شدن کلید موس استفاده کنید ویک رویداد برای چک کردن مقدار متغییر اگر مخالف صفر بود اکشن تیر اجرا شود. تا زمانی کلید چپ فشار داده شده اکشن  تیر اجرا بشه
ودر زیر شرط اش یک شرط از رویداد ایکس ثانیه حالال مثلا بعد از سه ثانیه تیر متوقف می شود. مقدار متغییر 0 شود.

راه حل:
متغییر عددی با مقدار اولیه 1
ابتدا شرط فشار دادن کلید چپ: سپس دو زیر شرط اضافه می کنید.
1- اگر مقدار متغییر 1 بود
2- else
در زیر شرط 1 : اکشن تیر انداز سپس یک زیر شرط دیگر که بعد از ایکس ثانیه مثلا 3 ثانیه مقدار متغییر را صفر کند
در زیر شرط 2 : اکشن هایی که در حالت که تیر نمی خواهد بزند 
در آخر خارج از شرط کلیک یک رویداد اضافه کن که  اگر متغییر صفر شد و بعد از 3 ثانیه مقدار متغییر یک شود شود
  پاسخ


 سپاس شده توسط: makan parsi ، keyhan
#4
(1394/7/2، 10:04 عصر)mehrdad.ch نوشته است: از یک متغییر کمکی استفاده کن برای کلیک راست.
باید از رویداد فشار داده شدن کلید موس استفاده کنید ویک رویداد برای چک کردن مقدار متغییر اگر مخالف صفر بود اکشن تیر اجرا شود. تا زمانی کلید چپ فشار داده شده اکشن  تیر اجرا بشه
ودر زیر شرط اش یک شرط از رویداد ایکس ثانیه حالال مثلا بعد از سه ثانیه تیر متوقف می شود. مقدار متغییر 0 شود.

راه حل:
متغییر عددی با مقدار اولیه 1
ابتدا شرط فشار دادن کلید چپ: سپس دو زیر شرط اضافه می کنید.
1- اگر مقدار متغییر 1 بود
2- else
در زیر شرط 1 : اکشن تیر انداز سپس یک زیر شرط دیگر که بعد از ایکس ثانیه مثلا 3 ثانیه مقدار متغییر را صفر کند
در زیر شرط 2 : اکشن هایی که در حالت که تیر نمی خواهد بزند 
در آخر خارج از شرط کلیک یک رویداد اضافه کن که  اگر متغییر صفر شد و بعد از 3 ثانیه مقدار متغییر یک شود شود

سلام.

ممنون از توضیحاتت ... یه چیزهایی متوجه شدم

اما هنوز مسئله شمردن تعداد تیرها حل نشدهچون ممکنه فردی 3 کلیک انجام بده اما فقط یک تیر
شلیک بشه برای این چیکار کنم میخوام تعداد دقیق تیرها رو بشمره

فکر کنم باید برای این کار ، شرطی برای خود کلیک موس در نظر بگیرم
که هر 4 صدم ثانیه یک بار عمل کنه ... چون سرعت شلیک گلوله هم همینقدر گذاشتم

فقط همین بخش شمارش دقیق مشکل منه بقیه رو می دونم چیکار کنم ممنون از توضیحاتت

-
-
  پاسخ


 سپاس شده توسط:
#5
از بخش sprite expressions (تیر یا هر شی دیگری) و انتخاب اکسپرشن count و به کمک کاندیشن سیستمی compare two values کنترل و شمردن تعداد موجود از یک اسپرایت یا یک شی امکان پذیر است.
--------------\\\\\\\\\\*******\\\\\\\\---------------------------\\\\\\\\\\**********\\\\\\\---------
[تصویر:  vngames_mobarez.png]


*«يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنْكُمْ وَ الَّذِينَ أُوتُوا الْعِلْمَ دَرَجاتٍ//خداوند کسانی را که ایمان آورده اند و کسانی را که دانش به آنان عطا شده است.درجات عظیمی می بخشد.»(قرآن کریم، المجادلة، 11 ‏)*

*پیامبر اکرم (ص) فرمود:«علم آموزي بر هر مرد و زن مسلمان، واجب است.»(مصباح‏ الشريعة، ج 13)
  پاسخ


 سپاس شده توسط: makan parsi
#6
 ممکنه فردی 3 کلیک انجام بده اما فقط یک تیر: این بستگی به استفاده رویداد دارد.
تعداد گلوله ها برای چه استفاده می شود. اگر می خواهید در هر لحظه 5 گلوله شلیک شود. یا بیش از یک تعداد نباشد.
اگر بگی کجا و برای چی استفاده می شود راحتر میتوانم کمکتان کنم
  پاسخ


 سپاس شده توسط: makan parsi ، keyhan
#7
(1394/7/3، 10:31 صبح)mehrdad.ch نوشته است:  ممکنه فردی 3 کلیک انجام بده اما فقط یک تیر: این بستگی به استفاده رویداد دارد.
تعداد گلوله ها برای چه استفاده می شود. اگر می خواهید در هر لحظه 5 گلوله شلیک شود. یا بیش از یک تعداد نباشد.
اگر بگی کجا و برای چی استفاده می شود راحتر میتوانم کمکتان کنم

سلام.

مسئله یک تفنگ با 10 تیر خشاب است و دستور زیر رو داره :
- در هر 0.4 ثانیه یک شلیک انجام میده

.

همین مسئله داخل این دستور که :
- با هر کلیک یک شمارش شلیک انجام بده

مشکل ایجاد میکنه این مشکل زدن تعداد متعدد کلیک موس است اما طبق
دستور در هر چهار صدم ثانیه یک اجازه شلیک وجود داره

دیشت آخر شب به این مشکل بر خوردم ... الآن که فکر میکنم شاید بشه شمارش رو هم با دستور هر 0.4 ثانیه
شمارش کرد.


ممنون از همگی ...

یه اشتباه بچگانه بود خخخخ
جواب جلوی چشم بود ، دیشب هم دیگه چیزی رو امتحان نکردم
فعلاً یه راه حل پیدا کردم که خیلی راحت هم بود.


-
-
  پاسخ


 سپاس شده توسط: vng
#8
سلام.


مشکل حل شد اما فقط در صورتی مشکل حل میشه که وریابل فقط مختص کاراکتر رو به وجود
بیارم اما در مورد وریابل های عمومی چی ؟

در ادامه دستور نویسی اجازه ی انتخاب اونها رو نمیده یا اینکه من بلد نیستم.

دستور به این صورت :
      باز زدن کلیک موس
      با اختلاف 4 صدم ثانیه
action - از بازیکن شلیک میشود
action -


میخواستم دستور شمارش رو در ادامه همین قرار بدم
اما در action بلد نیستم وریابل کلی رو انتخاب کنم ولی راحش این بود که برای خود بازیکن وریابل تعریف کنم

و دستور کم کردن تعداد وریابل رو اعمال کنم

دستور به این صورت :

      باز زدن کلیک موس
      با اختلاف 4 صدم ثانیه
action - از بازیکن شلیک میشود
action - یک وریابل (گلوله) کم شود


اما اگه وریابل عمومی باشه چی چطور باید داخل دستور قرارش میدادم ؟

-
-
  پاسخ


 سپاس شده توسط:
#9
اون راهی که بهتون گفتم از راه های دیگر آسانتر و کم دردسرتر و دقیق تر است.بطور مثال طبق تصویر زیر ما میتوانیم شرط کنیم هر وقت تعداد تیر ها به 10 عدد رسید فلان اتفاق بیافتد.....

[تصویر:  00.jpg]
--------------\\\\\\\\\\*******\\\\\\\\---------------------------\\\\\\\\\\**********\\\\\\\---------
[تصویر:  vngames_mobarez.png]


*«يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنْكُمْ وَ الَّذِينَ أُوتُوا الْعِلْمَ دَرَجاتٍ//خداوند کسانی را که ایمان آورده اند و کسانی را که دانش به آنان عطا شده است.درجات عظیمی می بخشد.»(قرآن کریم، المجادلة، 11 ‏)*

*پیامبر اکرم (ص) فرمود:«علم آموزي بر هر مرد و زن مسلمان، واجب است.»(مصباح‏ الشريعة، ج 13)
  پاسخ


 سپاس شده توسط: makan parsi
#10
سلام.

راه حل خوبیه و جاهای زیادی به درد میخوره
اما این دستور بیشتر به درد متوقف کرد تیر اندازی میخوره که اونو
باید از طریق بخش سیسم وریابل رو مشخص کنیم


مشکل فقط اجرای عمل نیست ، شمارش دقیق تعداد گلوله ها هم هست.

-
-
  پاسخ


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


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

پرش به انجمن: