سه شنبه 3 اسفند 1395 - 24 جمادي الاول 1438 - 21 فوريه 2017
می خواهیم چیزی شبیه بازی تام و جری درست کنیم، در این بازی قرار است یک موش داشته باشیم که در هر زمان به صورت تصادفی در مکانی از صفحه ظاهر می شود و گربه به دنبال او می دود! برای این کار لازم است دو label روی فرم قرار دهیم که بر روی فرم...
عکس نویسنده
عکس نویسنده
نویسنده : محسن نصرتی
بازدید :
زمان تقریبی مطالعه :

ساخت بازی پازل با #C، جلسه پنجم

آموزش برنامه نویسی#c، جلسه پنجم


هدف کلی:
آشنایی بیشتر با رویدادها


سرفصل های تئوری:
1. رویدادهای ماوس
2. آشنایی با کنترل label
3. پروژه ی تام و جری - بخش اول


پروژه(2) تام و جری:
می خواهیم چیزی شبیه بازی تام و جری درست کنیم، در این بازی قرار است یک موش داشته باشیم که در هر زمان به صورت تصادفی در مکانی از صفحه ظاهر می شود و گربه به دنبال او می دود! برای این کار لازم است دو label روی فرم قرار دهیم که بر روی فرم حرکت نمایند به طوری که با حرکت ماوس یک Label به دنبالLabel  دیگری که مکانش به صورت تصادفی (random) تغییر می کند نزدیک شود. این برنامه ما را با کنترلها و خصوصیات آنها آشنا می کند. البته حرکت یکی از این Label ها در مکانهای ویژه ای که از قبل تعریف شده، به صورت ناگهانی تغییر می کند  و به مکان رندم انتقال می یابد، این مکانها همان شبیه سازی لانه ها یا سوراخ های موش می باشد که موش زمان فرار از آن استفاده می کند.


مرحله اول:
یک پروژه جدید از نوع ویندوزی همانند پروژه جلسات قبل ایجاد کنید و نام پروژه راTomAndJeri  قرار دهید. با انتخاب فرم و رفتن به خصوصیات فرم در قسمت Image background و کلیک بر روی دکمه مورد نظر، تصویر پس زمینه َای برای بازی خود انتخاب کنید.(این تصویر را می توانید از روی وب پیدا کرده یا درصورتی که  آن راقبلا ذخیره کرده اید  به فولدرتصویر خود بروید وانتخاب کنید)
حالا دو کنترلlabel را از منو ابزار با ماوس بر روی صفحه کشیده و رها کنید کنترل label نیز همانند کنترل textbox  که در پروژه ماشین حساب مشاهده کردید دارای خاصیت text می باشد  که در صورت مقدار دادن آن، مقدار رشته بر روی آن قرار می گیرد حال متن label اول را tome و دومی را Jeri مقدار دهید.

آموزش برنامه نویسی#c، جلسه پنجم

 مشاهده می کنید که روی label ها بر روی فرم مقدار Tom و Jeri ثبت می شود. ما می توانیم این خصوصیات را به صورت کد نویسی نیز به صورت زیرنیز  تغییر دهیم.

  label1.Text = "Tom";
label2.Text = "Jeri";

برچسب ( Label) چیست؟ Label ها عموما برای ارائه متن برای کاربر رائه می شود فقط برای خواندن می باشند و کاربر نمی تواند مقدر خاصیت text آن را تغییر دهد ولی ما می توانیم در داخل کد یا با استفاده از پنجره properties آن را تغییر دهیم. بعد از مقدار دادن Label ها، ما با توجه به صورت مسئله باید بتوانیم آنها را به مکانهای مشخصی حرکت دهیم بنابر این باید بدانید اندازه و مکان یک کنترل را چگونه می توان تغییرداد.
اندازه و مکان
اندازه و مکان یک کنترل بوسیله خاصیت left, wright, top & bottom همراه با خصوصیت size و location تعیین می شود. کد تمامی این خاصیت ها یک مقدار عددی از نوع صحیح می گیرد حال سعی کنید با مقدار دادن این خصوصیات مکان برچسب ها را تغییر دهید.
در این پروژه سعی می کنیم ابتدا با رویدادهای حرکت )کلیک، دوبار کلیک و...( ماوس بر روی فرم آشنا شویم و سپس برنامه را دنبال کنیم.
 بنابر این  بر روی فرم کلیک کرده و پس از انتخاب جدول خصوصیات فرم بر روی tab زرد رنگ event بروید و با کلیک بر روی رویدادهای فرم به دنبال رویداد mousemove بگردید.

آموزش برنامه نویسی#c، جلسه پنجم

با دو بار کلیک متد آن ایجاد می شود و به بخش کد نویسی آن هدایت خواهید شد؛ کد زیر را در آن بنویسید:

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
            label1.Text = "x=" + e.X;
     label2.Text = "y=" + e.Y;           
}

 برنامه را کامپایل می کنیم. با حرکت ماوس مشاهده می کنید مختصات صفحه بر روی دو کنترل label  مشاهده می شود. می بینید که با تغییر ماوس رویداد متد mousemove فرم فعال و مقدار مکان ماوس که بر روی فرم قرار دارد در کنترل label ها نمایان می شود.

آموزش برنامه نویسی#c، جلسه پنجم


 رویدادهای ماوس چیست؟
مدیریت رویدادهای ماوس (نظیر کلیک کردن، فشار دادن و حرکت) زمانی تولید می شود که ماوس با یکی از کنترلها تعامل داشته باشد. هر متد مدیریت رویداد ماوس باید یک object و یک شی MouseEventArgs  به عنوان آرگومان داشته باشد. رویداد کلیک که قبلاً از آن استفاده کردیم از نماینده EventHandler و آرگومان های رویداد EventArgs استفاده می کرد.
کلاس MouseEventArgs حاوی اطلاعاتی درباره رویداد ماوس می باشد نظیر مختصات (x, y) اشاره َگر ماوس، دکمه فشار داده شده ماوس، تعداد کلیک ها و درجه چرخش چرخ ماوس. البته مختصات X  و Y  شی MouseEventArgs نیست. بلکه کنترلی هستند که باعث به وجود آمدن رویداد شده است.
حال سعی کنید این بار با تغییر حرکت ماوس label ها را به حرکت در بیاورید، برای این کار کد قبلی در اتفاق mouse move  را به صورت زیر تغییر بدهید:

private void Form1_MouseMove (object sender, MouseEventArgs e)
{
      label1.Left= e.X;
      label1.Top = e.Y;
}

ساخت بازی پازل با # C، جلسه اول
ساخت بازی پازل با # C، جلسه دوم
ساخت بازی پازل با # C، جلسه سوم
ساخت بازی پازل با # C، جلسه چهارم
ساخت بازی پازل با # C، جلسه پنجم
ساخت بازی پازل با # C، جلسه ششم
ساخت بازی پازل با # C، جلسه هفتم
ساخت بازی پازل با # C، جلسه هشتم

بخش پژوهش های دانش آموزی تبیان، تهیه: محسن نصرتی

 تنظیم: نسرین صادقی
تلفن : 81200000
پست الکترونیک : public@tebyan.com
آدرس : بلوارکشاورز ، خیابان نادری ، نبش حجت دوست ، پلاک 12

ارتباط با ما

روابط عمومی

درباره ما

نقشه سایت

تعدادبازدیدکنندگان
افراد آنلاین