PDA

View Full Version : مبتدی: رسم یه آبجکت خاص در GDI+



CodeforLife
شنبه 01 خرداد 1395, 07:53 صبح
سلام من یه سری عنصر در بازی دارم که میخوام اونها در اول بازی رسم بشه .اون ها رو در رویداد pain رسم کردم و متد هاش رو صدا زدم .
سکه هایی در بازی دارم که اونها هر دفعه به صورت تصادفی جاشون عوض میشه .
حالا نوبت به رسم player میرسه و اون رو حرکت میدم با ARRow key .
هر بار که حرکت میکنه اون رو رفرش کنم . که حرکتش رو روی صفحه ببینم .
حالا دوباره با هر رفرش به رویداد paint میره و همه آبجکت ها م رو رسم میکنه !
و بدترین اتفاق اینه که جای سکه ها به صورت تصادفی با هر حرکت player تغییر می کنه !
آیا راهی هست که من فقط هر بار که خاست یه آبجکت خاص رو رفرش کنم !!!!؟؟؟؟؟
لطفا اگر چیزی به ذهنتون میرسه راهنماییم بفرمایید.
متشکرم

reza_ali202000
شنبه 01 خرداد 1395, 09:18 صبح
سلام دوست عزیز
یه متغیر بزارید زمانی که برا بار اول اون سکه ها رسم شد متغیره بشه یک. حالا وقتی که کاراکترت جابجا میشه توی تابع پینت یه شرط میزاری که اگه متغیره 0 بود اجرا بشه در غیر این صورت خیر.
void paint()
if i=0 then
.
.
.
i=1
end if

CodeforLife
شنبه 01 خرداد 1395, 10:10 صبح
سلام وممنونم
همین کار رو کردم .
زما نیکه 0 هست در اول بازی همه آبجکت هام رسم میشن .
و اون متغیر رو 1 میکنم . حالا می خوام که اون آبجکتها که تشکیل دهنده زمین بازی هست هم باشه ...
و Player هر دفعه دوباره رسم بشه !
ولیکن متاسفانه زمانیکه در Else فقط Player رو حرکت میدم و رسم میکنم دیگه اون قبلیها یعنی عناصر بازیم پاک شدن !
برای رفع این مشکل باید چه کار کنم ؟

reza_ali202000
شنبه 01 خرداد 1395, 13:42 عصر
اگه امکانش هست برا پلیرت از ابجکتی متفاوت استفاده کن. مثلا کل اشیا و زمین بازی رو توی فرم رسم کن و پلیر رو توی پنل. اگه نمیشه مکانهای متغیرهاتو ذخیره کن و تا زمانی که پلیر سکه رو نخورده با موقعیت قبلی رسم کنه.
اگه میتونستید برنامه رو اپ کنید بهتر میشد کمکتون کرد.