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

۱۳۸۷ بهمن ۲, چهارشنبه

Needle

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


اوون هم توی هر پرژه به صورت تکراری یه کمی ملال آور می شد!

Needle آخرین عنصر Panel در Game Studio هست که برای ساختن عقربه های ساعت و یا سرعت سنج ماشین مفید هست.

معرفی Needle به شکل زیر است:

needle(x, y, bmap, cx, cy, angle, min, max, var);

  • x و y مکان قرار گیری عقربه نسبت به جای Panel .
  • bmap نام bitmap ای که می خواهید به عنوان عقربه نمایش داده بشه.
  • cx و cy مکان pivot عکس بر حسب pixel رو مشخص می کند. این نقطه از گوشه بالا سمت چپ محاسبه می شه.
  • angle اختلاف دجه. بر حسب درجه.
  • min و max مقادیری برای تنظیم مقدار چرخش. که بین 0 تا 360 می تواند باشد.
  • var متغیری برای این چرخاندن عقربه.

یه مثال ساده برای Needle در Lite-c اگه بخوام بنویسم:

//////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>

/////////////////////////////////////////////////////////////////


var my_var ;

BMAP* panel1 = "main.pcx";

PANEL* my_pan =
{
needle(132,140,"needle.pcx",11,4,0,0,360,my_var);
BMAP = panel1;
flags = VISIBLE OVERLAY;
pos_x = 30;
pos_y = 30;
}


void main()
{
video_mode = 7;
screen_color.blue = 150;
while(1)
{
my_var -= time_step * 10;
wait(1);
}
}

دو نکته راجبه Needle :
اگر مقدار متغیر از مقدار min و max تجاوز کنه عقربه به چرخش خودش ادامه می ده!
Needle را نمی توان در Panel های چرخانده شده نمایش داد.

Download

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