Movimiento de Sprite

Hola bede
Tengo un pequeño problemita, en un movie que hice, para mover un sprite con las teclas, hacia arriba, abajo, izquierda y derecha, y escribo al siguiente linea:
on keyDown
if the optionDown = TRUE then sprite (2).trails = FALSE
keySave = the keyCode
repeat while (keyPressed(keySave))
case (keySave) of
123:
sprite(2).locH = sprite (2).locH - 1
124:
sprite(2).locH = sprite (2).locH + 1
125:
sprite(2).locV = sprite (2).locV + 1
126:
sprite(2).locV = sprite (2).locV - 1
end case
updateStage
end repeat
sprite (1).trails = TRUE
end
Hasta acá todo funciona de maravilla, mi problema es que como hago, cuando pulso las teclas arriba y derecha a la vez, un sprite se mueva en diagonal.?
Desde ya muchas gracias por tu atención.
Morphy

1 respuesta

Respuesta
1
Así:
Property px, py
On beginSprite me
px = sprite(me.spriteNum).locH
py = sprite(me.spriteNum).locV
end
on exitFrame me
if keyPressed(123) then px = px - 1
if keyPressed(124) then px = px + 1
if keyPressed(125) then py = py + 1
if keyPressed(126) then py = py - 1
sprite(me.spriteNum).loc = point(px,py)
end
Lamentablemente me equivoque no era lo estaba buscando, probé lo que me dijiste y funciona de maravilla, pero no estoy muy convencido y quiero cambiar la temática, disculpame
vamos de nuevo
Tengo un sprite en la cual con los botones izquierdo y derecho debo rotar hacia la izq. o der.
El sprite y con las flechas arriba y abajo, ir hacías adelante o atrás según el angulo de rotación que haya quedado el sprite.
Espero que me entiendas.
Desde ya muchas
Gracias
Morphy
Así:
Property p, py, px, posicion, rotacion
On beginSprite me
p = sprite(me.spriteNum)
py = p.locv
px = p.loch
posicion= p.loc
end
on exitFrame me
if keyPressed(123) then
p.rotation =p.rotation - 3
end if
if keyPressed(124) then
p.rotation= p.rotation+ 3
end if
rotacion=p.rotation
angulo=(pi*rotacion/180)
y1=sin(angulo)*3
x1=cos(angulo)*3
if keyPressed(126) then
posicion=posicion + point(x1,y1)
end if
if keyPressed(125) then
posicion=posicion - point(x1,y1)
end if
sprite(me.spriteNum).loc =posicion
end

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas