button یکی دیگه از عناصر panel هست که می شه روش کیلیک کرد. این از همون دکمه هایی که روزی هزار بار روشون کیلک می کنیم. butoon ها در game studio این جوری معرفی می شن:
button (x, y, bitmap_normal, bitmap_released, bitmap_over, function_clicked, function_released, function_over);
خوب این یکی یه کم طولانی ولی خیلی راحت هست !
- x و y جای button رو از جایی که panell هست تعیین می کنه. (مثل digit و window)
- bitmap_clicked عکس دکمه شما وقتی که روش با دکمه چپ کیلیک می کنید.
- bitmap_normal عکس دکمه وقتی که روش کیلیک نشده وموس روش نیست.
- bitmap_over عکس button شما وقتی که موس روش هست ولی کیلیک نشده.
- function_clicked نام تابعی که می خواهید با کیلک کردن روی button اجرا بشه.
- function_released نام تابعی که می خواهید بعد از کیلیک یعنی وقتی دکمه موس اوومد بالا اجرا بشه.
- function_over نام تابعی که می خواهید وقتی که موس روی آن رفت اجرا شود. البته بدون کیلیک.
توجه : هیچ وقت توی معرفی button ها در game studio وقتی که تابع ها رو معرفی می کنید پرانتز نزارید این کار باعث می شه که مرتبا اوون تابع اجرا بشه. یعنی حتی وقتی که button کیلیک نشده.
و اگه از تا بع هایی نمی خواهید استفاده کنید جای اوون ها NULL بزارید.
حالا یه مثال:
تو این مثال این ها رو می سازیم.
- یه Panel
- تغییر شکل موس
- یه button که هم رنگش عوض می شه و هم وقتی روش کیلیک کنیم بازی بسته می شه.
//////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
/////////////////////////////////////////////////////////////////
BMAP* mouse_pcx = "mouse.pcx";
// bitmap used for the mouse pointer
////////////////////////////////////////////////////////////////
function main()
{
video_mode = 7;
screen_color.blue = 150;
mouse_map = mouse_pcx;
mouse_mode = 2;
while (1)
{
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
wait (1);
}
}
function quit_program()
{
while (key_any) {wait (1);}
sys_exit(NULL);
}
////////////////////////////////////////////////////////////////
PANEL* main_pan =
{
bmap = "main.pcx";
pos_x = 250;
pos_y = 200;
button (250, 134, "quitclicked.pcx", "quitnormal.pcx", "quitover.pcx",
quit_program, NULL, NULL);
flags = OVERLAY ¦ VISIBLE;
}
اینجا از سه تا عکس برای button استفاده کردم. و یه کد هم برای حرکت دادن موس توی تابع main نوشتم. من اینجا راجبه موس حرفی نمی زنم و بعدا به طور کامل اوون رو شرح می دم. و تابع quit_program که برای خروج از بازی هست.
و فراموش نکنید که قبل از استفاده هر چیز باید اوون رو معرفی کنید.
را جبه تابع quit_program :
خط اول اینو می گه که وایسا تا همه دکمه های موس و کیبورد رها بشن.
خط دوم هم می گه که برنامه باید بسته بشه.
راجبه تابع wait :
یه آرگمان می گیره که اگه منفی یک باشه می گه که بازی به مدت یک ثانیه واقعی وایسه.
اگه مثبت باشه یعنی بازی به مدت یک تیک cpu وایسه. عمل کرد این تابع مثل تابع sleep ای که توی API های windows هست و به این درد می خوره که وقتی از حلقه های بی نهایت استفاده می کنیم سیستم هنگ نکنه. ما بیشتر با همون مقدار مثبت یک کار داریم.

هیچ نظری موجود نیست:
ارسال یک نظر