Co jak co, ale teren po podzieleniu na malutkie kawałki nie sprawia problemów z szybkością (nawet na moim gorszym kompie), a poza tym na zmianę silnika niszczenia terenu jest dużo za późno (choć pomyślę o wprowadzeniu rysowania surface'ami przy generowaniu terenu).
Co do metody Cekola:
Zamieniłem, a belka wciąż się nie pojawia.
Podobno sprawdzanie koloru pixeli jest wolne, a poza tym taka metoda narzuca pewne ograniczenia (jak np. jednolity kolor nieba).
Za to uwaga Dawiddsa ("Może tworzysz belkę na złych pozycjach") okazała się prawdziwa i belka tworzyła się tam, gdzie nie powinna. :D Dawidds ma miejsce w creditsach, a ja zamykam temat. Dzięki tym, którzy chcieli pomóc.
PS. Dla ciekawskich:
GML
if girdered=0
{
if instance_number(girder_obj)=1
{
if girder_obj.x>x-40 and girder_obj.x<x+280 and girder_obj.y<y+128 and girder_obj.y>y-40
{
surface_set_target(surf);
draw_clear(c_black);
draw_sprite(sprite_index,0,0,0);
//draw_sprite_ext(other.sprite_index,0,other.x div 1,other.y div 1,other.dir,1,0,c_black,1);
draw_sprite_ext(girder_spr,0,girder_obj.x-x,girder_obj.y-y,1,1,girder_obj.image_angle,c_white,1);
draw_point_color(0,87,c_black);
surface_reset_target();
sprite_delete(spr);
spr=sprite_create_from_surface(surf,0,0,240,88,1,1,0,1,0,0);
sprite_index=spr;
girdered=1;
alarm[2]=10;
}
}
}
Tak teraz wygląda kod.