se me olvido responder al tema de colisión,
para saber si algo ha colisionado en algo se hace mediante áreas,
si quieres comprobar si una img1 colisiona con img2 es bastante simple :
tienes que ir comprobando que los "vértices" del cuadrádo/rectángulo se encuentren dentro del área del otro cuadrádo/rectángulo y en eso entra en juego el ancho del objeto
por ejemplo para saber si su vértice izquierdo del img2 se encuentra dentro del área de img1 sería algo así
para comprobar el eje x
la posición más a la izquierda de img2 debe ser mayor que la posición más a la izquierda de img1 y la posición más a la derecha de img mayor que la posición img2 izquierda y para que se encuentre en colisión
debe cumplir que el eje y también se encuentre,
se haría lo mismo con el rest de vértices
if ((img1.left < img2.left and img1.left+img1.width>img2.left) or(... resto de comprobaciones ejes x)) and ((img1.top < img2.left and img1.top+img1.height>img2.top) or (... resto de comprobaciones ejes y)) then
' colisiona
else
' no colisiona
endif
se queda un if algo grande pero bueno
Te dejo otros dos juegos en la que pongo en práctica lo que digo he actualizado sus links de descarga.
En garrapato invasion no utilizo directx
http://foro.elhacker.net/programacion_vb/garrapato_invasion-t129166.0.html;msg604315Lucha de sangre con direct x
http://foro.elhacker.net/programacion_vb/source_juego_lucha_de_sangre_humanoslicantroposvampiros-t164714.0.html;msg777233#msg777233P.D. atención se ha escrito un nuevo comentario ... etc ...