Anuncios Google

[LUA] Hacer un rebote (Solucionado)

¿Alguien me puede ayudar a hacer un rebote en LuaDEV?

 

Saludos y gracias!

 

 

EDITO: Gracias a todos, ya está solucionado y funcionando, la verdad es que no sabía ni por donde tenía que empezar...


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de NEKERAFA

Mmm...

Una cosa, estais poniendo dos variables, dirección y velocidad, cuando lo podeis poner solo la velocidad. Más o menos algo simple:

objeto = {imagen = image.create(100, 100, color.new(255, 255, 0)), x = 190, y 86, vx = 2, vy = 2} -- Creamos un array con nuestro objeto
 
while true do
   objeto.imagen:blit(objeto.x, objeto.y) -- Imprimimos nuestro objeto
 
   objeto.x = objeto.x+objeto.vx -- Sumamos a x la velocidad de x
   if objeto.x <= 0 or objeto.x >= 480 then objeto.vx = - objeto.vx end -- Cambiamos la velocidad de signo si x sale de la pantalla
   objeto.y = objeto.y+objeto.vy -- Sumamos a y a la velocidad de y
   if objeto.y <= 0 or objeto.y >= 480 then objeto.vy = - objeto.vy end -- Cambiamos la velocidad de signo si y sale de la pantalla
   screen.flip()
end

Así no necesitamos variables innecesarias.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

¿Y como sabes que "tipo" de

¿Y como sabes que "tipo" de rebote quiere?

Imagen de NEKERAFA

Mmm...

El mensaje era para Jorge y Aitor, que era un apunte porque ellos.estaban utilizando dos variables cuando se puede utilizar una sola. Lo malo es que no podía poner dos respuestas, por lo que contesté al del post.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de jorge_97

By Jorge_97

uhm sí...

Creo que el ejemplo es suficiententemente básico para que lo entienda... de todos modos el tuyo es mejor obviamente

Un saludo


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de jorge_97

By Jorge_97

...

Dios mio de mi vida...

Mira piensate el algoritmo y ya está:

Si al añadir (Sumar) píxeles el cuadrado va a la derecha y al quitar (Restar) va a la izquierda ya lo tienes:

direccion=1
 
while true do
 
--Si direccion es 1 que vaya a la derecha (Sumar Pix) sino a la izquierda (Restar pixeles) =)
if direccion==1 then x=x+1 else x=x-1 end
 
--Si pasa algo que tu escribas aqui que cambie la direccion
if condicion then direccion=direccion+1 end
 
--Límite para la direccion
if direccion>2 then direccion=1 end
 
end


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Te equivocas, quieres

Te equivocas, quieres decir: ¿Alguien ME PUEDE HACER un rebote en LuaDEV?

La

La cosa es que no sabía ni por donde empezar...

 

Saludos!

Si quieres hacer ese tipo de cosas...

Con un algoritmo se arregla si quieres un code ordenado :)

Imagen de NEKERAFA

+1

Es que tal cual lo dice...

Imagen de jorge_97

By Jorge_97

xD

Sip... aqui estamos para proporcionar Codes...

nah, asi aprenderá yo ya le dejé el mio... marca artesanal xD

Saludetes

Imagen de AitorDB

By Aitor

Supongo a que te refieres a que en la pantalla un cuadrado por ejemplo choque con algo y cambie su sentido ¿no?

Haz algo así:

direcx = 1 --Sentido de movimiento del objeto en el eje x (1 derecha, -1 izquierda)
directy = 1 --Sentido de movimiento del objeto en el eje y (1 abajo, -1 arriba)
velocidad = 2 --Píxeles que aumentan con cada bucle
objeto = {image.create(50,50,color.new(255,0,0)),215,111}
 
-- Creamos imagen, e indicamos las coordenadas iniciales (215 en x y 111 en y)
 
while true do --Abrimos bucle principal
 
objeto[1]:blit(objeto[2],objeto[3]) --Mostramos la imagen en pantalla
 
objeto[2] = objeto[2] + (velocidad * directx) --Movimiento x
objeto[3] = objeto[3] + (velocidad * directy) --Movimiento y
 
if objeto[2] <= 0 then directx = 1 --Cambio de sentido en x 
elseif objeto[2] >= 480 then directx = - 1 end --Cambio de sentido en x 
 
if objeto[3] <= 0 then directy = 1 --Cambio de sentido en y
elseif objeto[3] >= 272 then directy = - 1 end --Cambio de sentido en y
 
screen.flip() --Damos la vuelta a la imagen
end --Cerramos bucle

 

No lo he  probado, pero creo que debería servir.


Sígueme en Twitter: @Aitor_db

Imagen de NEKERAFA

Mmm...

¿Puedes especificar más?

Antes de nada te recomendaría que repases matemáticas, porque probablemente lo que quieres hacer es muy facil.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.