GMC Bulgaria

Здравейте ( Вход | Регистрация )

Примери за начинаещи - Прегледай преди да питаш!, Героя да следи мишката, живота да се вижда, влачене на обект и т.н.
RaGiNGWhiSpeR
коментар 21:20:21, 07-January-2009, Wednesday
Коментар #1


I'm The Evil Admin
Икона на група

Група: Администратор
Коментари: 541
Регистриран: 14.11.04
Потребител № 3



Въведение
В тази тема ще поствам примери как да се направят много от нещата, за които питат начинаещите. Всичкия код, който ще видите трябва да бъде слаган в отбелязания Event и с drag&drop елемента Execute a pice of Code.

В ТАЗИ ТЕМА СЕ ПОСТВАТ САМО ПРИМЕРИ И НИЩО ДРУГО! ВСИЧКИ МНЕНИЯ ЩЕ СЕ ТРИЯТ!

Последно добавени примери: 07.01.2009г. Няма да редактирам този пост, а ще поствам направо надолу.

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №1
Влачене на обект с мишката

Create:
Код
drag=0;
drag_xoff=0;
drag_yoff=0;


End Step:
Код
if (drag=1) {
    x=mouse_x-drag_xoff;
    y=mouse_y-drag_yoff;
}


Left Pressed:
Код
drag=1;
drag_xoff=mouse_x-x;
drag_yoff=mouse_y-y;


Global Left Released:
Код
drag=0;


Забележете, че е Left Pressed и Gobal Left Released. Това е така понеже при по-ниска скорост на стаята обекта изостава от мишката и може да се случи бутона да бъде пуснат, когато обекта все още не е настигнал мишката. При скорост от 60 на стаята почти не се забелязва изоставане.

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №2
Живота винаги да се вижда, когато екрана се движи

В случая ще се изписва живота в цифри (пр. 10,56,100).

Create:
Код
life=100;


Draw:
Код
draw_text(view_xview[0]+10,view_yview[0]+10,string(life))


• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №3
Героя да се движи към/спрямо мишката

Контроли:
W/A/S/D - Напред/Наляво/Надясно/Назад

Create:
Код
move_speed=5;


Step:
Код
image_angle=point_direction(x,y,mouse_x,mouse_y);


Keyboard: A:
Код
x+=lengthdir_x(move_speed,image_angle+90);
y+=lengthdir_y(move_speed,image_angle+90);


Keyboard: D:
Код
x+=lengthdir_x(move_speed,image_angle-90);
y+=lengthdir_y(move_speed,image_angle-90);


Keyboard: S:
Код
x+=lengthdir_x(-move_speed,image_angle);
y+=lengthdir_y(-move_speed,image_angle);


Keyboard: W:
Код
if (point_distance(x,y,mouse_x,mouse_y)>32) {
    x+=lengthdir_x(move_speed,image_angle);
    y+=lengthdir_y(move_speed,image_angle);
}


• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №4
Отброяване

Create:
Код
raw_seconds=650; // Това е общия брой на секундите за отброяване - променяте само
//това и нищо друго в изчисленията

steps=raw_seconds*room_speed;
temp=raw_seconds/3600;
hours=floor(temp);
temp=frac(temp)*60;
minutes=floor(temp);
temp=frac(temp)*60;
seconds=floor(temp);


Step:
Код
if (steps>0) {
    steps-=1;
    temp=steps/(room_speed*3600);
    hours=floor(temp);
    temp=frac(temp)*60;
    minutes=floor(temp);
    temp=frac(temp)*60;
    seconds=floor(temp);
}


Draw:
Код
draw_text(x,y,string(hours)+':'+string(minutes)+':'+string(seconds));


• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №5
Ден/Нощ

За да се смени времето се натиска <space> независимо дали е напълно тъмно или не.

Create:
Код
day=2;
alpha=0;


Step:
Код
if (day=1)  {
if (alpha<1) alpha+=0.005
else day=2;
} else if (day=0) {
if (alpha>0) alpha-=0.005
else day=2;
}


Draw:
Код
draw_set_color(c_black);
draw_set_alpha(alpha);
draw_rectangle(view_xview[0]-10,view_yview[0]-10,view_xview[0]+2148,view_yview[0]+1636,1);


Key Press: Space:
Код
if (day!=2) {
if (day=1) day=0
else day=1;
} else {
if (alpha>=1) day=0
else if (alpha<=0) day=1;
}


• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Пример №6
Живот над главите на противниците

Create:
Код
life=80;
life_max=100;


Draw:
Код
draw_set_color(c_black);
draw_rectangle(x-25,y-30,x+25,y-20,0);
if (life>0) {
    draw_set_color(c_green);
    draw_rectangle(x-25,y-30,x-25+50*(life/life_max),y-20,0);
}


--------------------
Si hoc non legere potes tu asinus es!
Go to the top of the page
 
+Quote Post

Пишете в тази тема


Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 05:52:05, 04.07.25