Może to wyglądać tak:
if (??) { //Warunek jesli scina drzewo
if alarm[0] < 200 {
alarm[0] += 1;
sprite_index = animacja_sicnania_drzewa_przez_drawala;
}
else {
i = instance_nearest(x,y,obiekt_drzewa);
i.sprite_index = animacja_upadania_drzewa;
}
}
else {
alarm[0] = 0;
}
Oczywiście trochę sprawa się komplikuje jeśli drwal musi odnieść zebrane zasoby do np. bazy etc.
Pole widzenie robi się po przez sprawdzenie odległości do gracza :) Szukaj na forum.
Chodzi o wychodzenie poza rooma? Proste
x = min(max(0,x),room_width);
y = min(max(0,y),room_height);
Można zrobić to inaczej. Np jeśli drwal nazbiera n drzewa to drzewo zostaje zniszczone (odtwarza się animacja udadającego drzewa). Napisać kod?
Sprawdzenie 1 warunku napewno nie zamuli, do tego jeśli jest to sprawdzanie odległości :P
Do tego zyskujemy kilka FPSów bo niektóre obiekty nie będą rysowane.
A jeśli miałeś na myśli surface. To też nie, tych obiektów musi być naprawdę dużo żeby zaczeło mulić :)
EDIT
Tylko pamiętaj, jeśli te obiekty wykonują jakieś dodatkowe akcje to może trochę przymulać. Ale to też zależy jakie akcje :P To takie skomplikowane xD
Etam. Tu jest potrzebny bardzo łatwy w obsłudze kodzik :)
if point_distance(x,y,o_gracz.x,o_gracz.y) > 100 {
visible = false;
}
else {
visible = true;
}
Bez bajerowania z mgłą.
alarm[0]=30 - czyli za 30 stepów event alarm 0 zostanie wykonany. Nie wiem w czym problem ...
Ehem xD To jest tak:
1. Ustawiasz budzik (alarm) na 30 kroków (stepów).
2. Budzik zaczyna odliczać od 0.
3. Jeśli budzik = 0 to zaczyna pipczeć (wykona akcję w event alarm)
4. Oczekuje kolejnego nastawienia na N kroków.
Teraz przykład "how it works?!" dla opornych :P
if alarm > 0 {
alarm -= 1;
}
else {
//Akcja
alarm = -1;
}
Hyh, viewy mają swoje identyfikatory, wiesz? :P Np:
view_xview[0] - x viwa nr0
view_xview[1] - x viwa nr1
etc.
Możesz sprawdzic jeszcze np. if view_current = 0 {rysuj}
Ej, a nie lepiej:
$emo_in = array(":)", ":(", ";)");
$emo_out = array("emo1.bmp", "emo2.bmp", "emo3.bmp");
$text = str_replace($emo_in, "<img src='".$emo_out."'>", $text);
Czy jakoś tak, już nie pamiętam xD