0 امتیاز

با سلام خدمت اساتید محترم:

من یک سوال خیلی سخت و مهمی داشتم ممنون میشم کمکم کنید:

این عکس فرم من است، من 5 عدد دکمه روی صفحه گذاشتم که به هر کدام عدد های متفاوتی داده ام و یک lable که به من امتیازم را نشان دهد و  یک TextBox که درجه مورد نظر را تایپ کنم.

مراحل:

من می خواهم اول کار در TextBox درجه مورد نظر را تایپ کنم مثلا 120 درجه، بعد بیام روی توپ که کلیک چپ کردم و کلیک چپ را رها کردم این توپ به این Button ها برخورد کند و عدد هایی که روی این button ها است کم شود ووقتی که شماره Button ها کم شد از بین بروند و امتیاز را در lable بالا نمایش دهد.

بزایند واضح تر توضیح دهم:

من وقتی درجه را در textBox وارد کردم و با کلید چپ موس روی توپم کلیک کردم و آن را رها کردم توپم برخورد کند به این Button ها و شماره هایی که روی این ها است کم شود یعنی هر ضربه ای که به این Button ها میخورد شماره های این Button  ها کم شود و وقتی شماره هاشون تمام شد هر چند تعدادی که توپ من به این Button ها برخورد کرد امتیاز به من بدهد و این امتیازدر lable نمایش دهد.

نکته: حالا حتما نباید توپ من به همه ی Button ها بخورد تا زمانی امتیاز بدهد که توپ من دارد به این Buttonها خورد میکند و تا زمانی امتیاز بدهد که توپ من سرجای اولش نیامده ووقتی سرجای اولش آمد متوقف شود و فقط امتیاز من را در lable بالا نمایش دهد

نکنه2: وقتی توپ من به این Button ها برخورد میکند ، حالا حتما هم نباید به همش بخورد ممکن است اون درجه که به توپ میدهیم به همه ی Button ها نخورد ممکن است به 3تاش بخورد ووقتی که توپ به این Button ها برخورد کرد عدد هایی که روی این Button ها است کم شود، و به من امتیاز دهد و وقتی امتیاز من زیاد شد عدد هایی که روی این Button ها هست هم آپدیت شود.

نکته3:من می خواهم اینکار با ویندوز فرم انجام شود نه با wpf

امیدوارم مفهوم و منظور را رسانده باشم.

میدانم که اساتید وقت خالی ندارند  ولی ممنون میشم کمک کنید

با تشکر

3 پاسخ

+1 امتیاز

سلام دوست عزیز؛

همونطور که در مثال قبل و سوال شما پاسخ داده شد

اینجــــــــــــــــا

 میتونید از همون روش برای این برنامه استفاده کنید 

مثلا برای باتن1==> عدد 5 رو در نظر بگیرید بعنوان تکست پس از هر برخورد یک مقدار کم بشه 

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

ببنید مقادیر لازم و اختیاری رو داخل رندوم قرار بدید

  Random rnd = new Random();
            BallVx = rnd.Next(1, 4);
            BallVy = rnd.Next(1, 4);
            BallX = rnd.Next(0, ClientSize.Width - BallWidth);
            BallY = rnd.Next(0, ClientSize.Height - BallHeight);

برای درک بهتر این مثال رو ببینید

 

دانلود سمپل

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

ولی من می خوام وقتی به این button ها برخورد کرد شماره هایی که روی این button است کم شود و به امتیاز من اضافه شود، مهم برای من این است که وقتی عدد این Button ها کلا تمام شد این Button ها از بین بروند و به من امتیاز بدهد.

این برای من خیلی مهم است.

ممنون میشم تو این مورد کمکم کنید تا اینجاش کمک کردید اگر این قسمت برام انجام بدیند ممنون میشم.

شما باید این بازی دیده باشید یخته شبیه همین بازی است ولی کمی آسان تز من نمی خوام مثل خودش باشه من فقط میخوام وقتی توپ این آجر ها یا همان button ها برخورد کرد عدد های button کم شود ووقتی عددهاش کامل تمام شد Button ها از بین برند. نمی خوام مثل این عکس چندتا توپ باشه با یک توپ کافیه. و تو lable امتیاز بدست آمده را نمایش دهد.

اگر این قسمتش را هم برام انجام بدیند ممنون میشم.

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

ویرایش شده توسط
توسط (136 امتیاز) 1 7

دوست عزیز

من یکی براتون نوشتم امیدوارم بدردتون بخوره

یه اجرا هم ازش گرفتم==>اینجــــا

دانلود

ویرایش شده توسط
توسط (7,164 امتیاز) 4 7 141
خیلی ممنون زخمت کشیدید.

بعد یک سوال دیگر.

عذرمی خوام خیلی سوال میپرسم

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

حالا اگر من بخوام با خراب شدن این Button ها امتیازم را هم بهم تو lable نشان دهد باید چی کارکنم؟
توسط (136 امتیاز) 1 7
0 امتیاز

دوست عزیز 

راهش اینه تو همون متدی که اعداد باتن کسر میشن یه متغییر تعریف کنید مثل همونbtnname و وقتی برخورد صورت گرفت 

امتیاز رو ثبت کنی

مثلا
یه متغیر
int score=0;


داخل متد

score=score+5;


label1.text=score.tostring();

 

 

البته من 5 نوشتم نحوه امتیاز دهی با شما میتونی 10 تا انتخاب کنی یا یکی

برای اضافه کردن چندتا Button دیگه کلا من کیج شدم.

هر کاری میکنم نمیشه.

کلا برنامم ریخ به هم.

میشه بی زحمت این قسنتش هم برام انجام بدیند؟

دیگه مزاحم وقتتون هم نشم
توسط (136 امتیاز) 1 7
بی زحمت برام انجام میدیند؟
توسط (136 امتیاز) 1 7
0 امتیاز

دوست عزیز 

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

2 تا پروژه میفرستم نحوه امتیاز دهی یعنی کسر اون مقادیر از باتن متفاوته

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

MyBaaaall.Bottom >= button2.Top 


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

 

 

 

دانلود اولی

 

 

دانلود دومی

وقتی توپ به بالا پرتاپ میشود بعضی اوقات توپ از Button ها رد میشود و عدد باتون ها کم نمیشود و بار دوم که توپ دوباره به بالا می رود  تازه بعد به Button ها میخورد

 

این مربوط به تایمره  کمی تغییرش دهید

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

پس باید یک Button مخفی تو فرم باشد که توپ بهش برخورد میکند؟

 

بنظرم چون باتن روی پنل هست اینطوری میشه نمیدونم اصولش اینه یا نه یبار بجای پنل روی فرم تست کنید

 

وظیفه score این است که وقتی توپ به Button ها خورد امتیاز به من بدهد و همین کار هم میکند، شما تو کدتون گفتیند که اگر score=11 شد پیغام پایان به من بدهد، توی Button ها اعداد 3 است که وقتی توپ به این ها میخورد باید امتیاز 9 به من بدهد. پس پطوریه که score تا 11 میرود؟

 

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

 

توسط (7,164 امتیاز) 4 7 141
راستیتش این بازی نوشتنش خیلی سخته برا همین نوشتنش پا شما افتاد

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

میشه لطف کنید این مواردی که گفتم انجام بدید؟ که دیگه مزاحم وقتتون هم نشم
توسط (136 امتیاز) 1 7
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,923 کاربر

دسته بندی ها

...