Thanks for comments!
@RougeCat: I answered you by email
I put the answer here, too, 'cause it could be useful to others.
I used the PASTE IMAGE command, 'cause I also encountered similar problems when animating a sprite. Besides, the paste image command let you arrange image priority simpler: the last image you
paste is the last to be printed on screen.
I've done this game in DBC but I tried this with success even in DBP (Trial version only).
1 - To animate aliens I used this method: assign an animation variable (AnimateAlienImage(n) ), then assign an animation loop wait
(AnimateAlienWait (n) ). I decrement the AnimateAlienWait (n), when it reaches 0 I increment AnimateAlienImage(n), and reset AnimateAlienWait(n) (ie: reset to 40 in a 40fps to have 1 image x sec) and when the image reaches the last image (AnimateAlienImage(n)+AnimateAlienImages(n) ) I restart from first image.
2 - For collision I use my own method, too. I assign a box with four corners to player's ship and bullets, then when the alien x,y are in contact with or bullet or ship then I do the relative actions (explo, energy dec, etc.). The same for alien bullets.
My code example for collision between ship (106x64) and alien (any dimension) with a 4x4 pixel lag for aliens and 20x12 lag for ship:
collision=0
if (alienx(f)+4)<(shipx+20) and (shipx+20)<(alienx(f)+alienxx(f)-4)
if (alieny(f)+4)<(shipy+12) and (shipy+12)<(alieny(f)+alienyy(f)-4)
collision=1
endif
if (alieny(f)+4)<(shipy+52) and (shipy+52)<(alieny(f)+alienyy(f)-4)
collision=1
endif
endif
if (alienx(f)+4)<(shipx+86) and (shipx+86)<(alienx(f)+alienxx(f)-4)
if (alieny(f)+4)<(shipy+12) and (shipy+12)<(alieny(f)+alienyy(f)-4)
collision=1
endif
if (alieny(f)+4)<(shipy+52) and (shipy+52)<(alieny(f)+alienyy(f)-4)
collision=1
endif
endif