Anuncios Google

Hacer colision en LuaDEV. ( Solucionado)

Hola a todos.

Como ya sabeís estoy haciendo el homebrew EJMDDM.

Si os fijaís bien en el juego, las colisiones del cuadrado contra la pared no son perfectas ya que si tocas la pared te lleva hacia atrás.

Quiero hacer esto:

Imaginaros que tengo esta imagen: Imagen.

Y un cuadrado rojo dentro de ella.

Pues quisiera saber como hacer que el cuadrado no salga de aí, no se si me entendeís.

Quisiera hacer lo mismo que esto: http://www.el-juego-mas-dificil-del-mundo.com/ ( fijaros como no sales del recinto negro)

Que puedo hacer?

Saludos.

SOLUCION: Pues sencillo. Solo lo tenia que dejar como me enseño jorge_97 y como lo tenia en el code. El problema era que el cuadrado era con draw.fillrect y ahora he hecho uno photoshop y ya funciona bien. Seguramente seria por ej borde que le puse con draw.rect. Sin mas, que ya esta todo resuelto.

Gracias a todos por responder, aunque, dentro de poco los voy a necesitar otra vez xD

Salu2.


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 AdriGV

Creo que podrias

Podrias probar con la creacion de mapa en vez de una imagen, mira estos link:

 

psp.scenebeta.com/node/73967

psp.scenebeta.com/node/80919

 

Saludos y suerte


Programador en C++ y Lua.

Creando un Juego con Unity3D para Android.

Deseo poder crear mi propio IDE para C++ y un Motor de Videojuegos.

Imagen de Dioni0396

Si fuera C

lo que haria es que cuando uno de los picos tocara lo negro cambiara de sentido con oslGetImagePixel.

Creo que habia una funcion de luadev que devuelve el pixel donde esta, puedes usarlo para tu juego.

El problema es que donde

El problema es que donde encuentro esa funcion :S

Salu2.

En la documentación... dónde

En la documentación... dónde más? xD

Creo se refieren a la función image.pixel(imagen,x,y), que te devuelve el color de un pixel en la imagen que indiques.
Ciertamente se podría usar para lo que necesitas, revisando el color de los pixeles que están debajo de las esquinas del cuadrado. Si son negros, hay colisión, y no puedes mover el cuadrado.
Ahora, la función que revise eso debería devolver las esquinas en las que hubo colisión (procura que en los escenarios que diseñes no pueda haber más de 3 colisiones a la vez) para que sepas hacia dónde te puedes mover aún. Por ejemplo, si hubo colisión en las esquinas superiores sabrás que aún puedes mover el cuadrado a los lados y hacia abajo ;)

Se me están ocurriendo uno o dos bugs usando ese método, pero ya te lo dejo a ti para que te diviertas xD

Imagen de Dioni0396

Exacto

me referia a esa funcion

Exacto...

No 1 o 2, más bien bastantes errores.

Lo cierto es que lo aconsejado sería una función tipo cuadradoin(x,y,x1,y1), que te devuelva true si está metido en una zona determinada por x,y,x1,y1 (un cuadrado, vamos). Eso es lo que yo uso en Lua con los cursores, esta es la función:

function cusorin(x,y,x1,y1)
   if cursorX >= x+x1 and cursorY <= y+y1 then
      return true
   end
end

Era algo así, lo que pasa es que no recuerdo bien si se sumaban o se restaban lo de x1,y1... mañana si tengo tiempo te la paso bien hecha, pero vamos, tu también puedes trastear, yo ya te he dado la pista ;-)

Un saludo.

P.D: por cierto, Rober, bonita firma nueva la que has pillado xD


 

 

Gracias a los 2, haber que

Gracias a los 2, haber que hago.

Las lineas las tengo hechas con rectangulos ( draw.fillrect)

Salu2.

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.