viernes, 24 de abril de 2015

Beach Volley

Funcionalidad general:


  • Pantalla de inicio: Contar con un botón al Gameplay y otro que muestre los créditos.
  • Background Parallax Scrolling: Contar dos capas de fondo en movimiento. La capa más lejana más lenta y la más cercana al sprite principal un poco más rápida.
  • Movimiento:El movimiento debe ser de derecha a izquierda con un botón para cada lado y otro movimiento de salto.
  • Elementos: Debe haber un elemento como una "pelota" que el personaje principal evite se caiga al piso. Al chocar con el personaje principal este elemento pelota debe rebotar. Debe haber un elemento enemigo que aparezca alguna veces por la pantalla y rebote por todos los marcos de la misma tratando de atacar al personaje principal. Este personaje debe aparecer y desaparecer cada ciertos segundos. Este personaje, al hacer contacto con el principal disminuye vida, pero no termina el juego. La única forma en que termina el juego es llegando al límite de "vida" o que la "pelota" toque el "piso."
  • Final: Una vez que pierda el jugador, en la pantalla de "Game Over" debe aparecer el puntaje total en el centro de la pantalla.
  • Marcador: Tu marcador será la cantidad de rebote efectivos que lograste en el juego.
Animaciones:
El juego en total debe contar con 4 animaciones de por lo menos 4 fotogramas:
  • El personaje principal mientras "avanza" por el escenario.
  • El personaje principal al saltar.
  • El elemento a evadir.
  • El elemento a rebotar o "pelota".
Sonidos:
 El juego debe contar con música de fondo en: Pantalla de inicio, Pantalla de Gameplay y Pantalla de Game Over, cada música debe ser distinta.
Además debe emitir un efecto de sonido: El salto, el choque con el enemigo, y el rebote de la "pelota".
Las variables y nombres de funciones utilizadas por el profesor en clase están prohibidas, por cada palabra o nombre encontrado en el código se restará 0.5 puntos a tu examen parcial.


Entregas:

Lunes 27 de Abril
Diseñador:
Bocetos de cada personaje (principal, elemento a esquivar, elemento a rebotar), fondos, pantalla de inicio, game over.
Programador:
Variables identificas inicializadas
Funciones principales
Listeners identificados declarados
Pantalla de inicio creada con rectángulos que lleven a gameplay y a créditos.
Creación de personaje principal y elementos sobre los que se apoya correctamente funcionando.





Miércoles 29 de Abril
Diseñador:
Todos los elementos del juego terminados (Principal a esquivar, a recolectar, fondos, pantalla inicio y game over)
Primer búsqueda de audio entregable.

Programador:
Personaje principal esquiva elementos y recolecta objetos. (Sin marcadores, el elemento a recolectar debe desaparecer).
Mandar a pantalla de Game Over si cae al vacío, y permitir el reinicio del juego.}

Viernes 01 de Mayo (Entrega virtual)
Diseñador:
Todas las hojas de sprites terminadas.

Programador:
Marcador a favor, marcador en contra.

Lunes  04 de Mayo
Diseñador:
Audio final definido.
Diseño de botones de pantalla de inicio.
Pantalla de inicio y de gameover.
Diseño de arte para Play Store.


Programador:
Aplicar todas las animaciones.

Miércoles 06 de Mayo
Diseñador:
-

Programador:
Aplicar gráficos de pantalla de inicio, botónes de inicio y gameover.
Alta del juego en la Play Store.






Rúbrica:
Para contar con los puntos debe estar perfectamente cumplido cada uno de los puntos siguientes sin error alguno, con una sóla cosa que falte, no se obtendrá calificación:

- Pantalla de incio, créditos  y fin de juego.  (2 puntos)
- Animaciones y background scrolling (2 puntos)
- Audio (2 puntos)
- Listeners (2 puntos)
- Puntajes a favor y en contra (2 puntos)

Food Drop

Funcionalidad general:


  • Pantalla de inicio: Contar con un botón al Gameplay y otro que muestre los créditos.
  • Background Parallax Scrolling: Contar dos capas de fondo en movimiento. La capa más lejana más lenta y la más cercana al sprite principal un poco más rápida.
  • Movimiento:El movimiento debe ser de derecha a izquierda con un botón para cada lado.
  • Elementos a esquivar y/o recolectar: El personaje evadir elementos que aparezcan sobre el camino y no debe comer o tomar. Al chocar o comer tu personaje a este objeto, no debe terminar el juego, sólo debe restarle vidas, la cantidad la decides tu, es decir, si choca con 5 "rocas" es el fin del juego. Por último, debe recolectar objetos (ejemplo:pizza) que vayan sumando a un contador que determina el puntaje final del usuario.
  • Final: Una vez que pierda el jugador, en la pantalla de "Game Over" debe aparecer el puntaje total en el centro de la pantalla.
Animaciones:
El juego en total debe contar con 4 animaciones de por lo menos 4 fotogramas:
  • El personaje principal mientras "avanza" por el escenario.
  • El personaje principal al tomar algo equivocado.
  • El elemento a evadir
  • Los elementos a recolectar o comer.
Sonidos:
 El juego debe contar con música de fondo en: Pantalla de inicio, Pantalla de Gameplay y Pantalla de Game Over, cada música debe ser distinta.
Además debe emitir un efecto de sonido: El salto, el choque con la roca, y la recolección de elementos.

Las variables y nombres de funciones utilizadas por el profesor en clase están prohibidas, por cada palabra o nombre encontrado en el código se restará 0.5 puntos a tu examen parcial.


Entregas:

Lunes 27 de Abril
Diseñador:
Bocetos de cada personaje (principal, elemento a esquivar, elemento a recolectar), fondos, pantalla de inicio, game over.
Programador:
Variables identificas inicializadas
Funciones principales
Listeners identificados declarados
Pantalla de inicio creada con rectángulos que lleven a gameplay y a créditos.
Creación de personaje principal y elementos sobre los que se apoya correctamente funcionando.





Miércoles 29 de Abril
Diseñador:
Todos los elementos del juego terminados (Principal a esquivar, a recolectar, fondos, pantalla inicio y game over)
Primer búsqueda de audio entregable.

Programador:
Personaje principal esquiva elementos y recolecta objetos. (Sin marcadores, el elemento a recolectar debe desaparecer).
Mandar a pantalla de Game Over si cae al vacío, y permitir el reinicio del juego.}

Viernes 01 de Mayo (Entrega virtual)
Diseñador:
Todas las hojas de sprites terminadas.

Programador:
Marcador a favor, marcador en contra.

Lunes  04 de Mayo
Diseñador:
Audio final definido.
Diseño de botones de pantalla de inicio.
Pantalla de inicio y de gameover.
Diseño de arte para Play Store.


Programador:
Aplicar todas las animaciones.

Miércoles 06 de Mayo
Diseñador:
-

Programador:
Aplicar gráficos de pantalla de inicio, botónes de inicio y gameover.
Alta del juego en la Play Store.






Rúbrica:
Para contar con los puntos debe estar perfectamente cumplido cada uno de los puntos siguientes sin error alguno, con una sóla cosa que falte, no se obtendrá calificación:

- Pantalla de incio, créditos  y fin de juego.  (2 puntos)
- Animaciones y background scrolling (2 puntos)
- Audio (2 puntos)
- Listeners (2 puntos)
- Puntajes a favor y en contra (2 puntos)

Free Fall

Funcionalidad general:


  • Pantalla de inicio: Contar con un botón al Gameplay y otro que muestre los créditos.
  • Background Parallax Scrolling: Contar dos capas de fondo en movimiento. La capa más lejana más lenta y la más cercana al sprite principal un poco más rápida.
  • Movimiento:El movimiento debe ser de derecha a izquierda con un botón para cada lado.
  • Elementos a esquivar y/o recolectar: El personaje debe caer y evadir obstáculos que aparezcan sobre el camino. Al chocar tu personaje con este objeto, no debe terminar el juego, sólo debe restarle vidas, la cantidad la decides tu, es decir, si choca con 5 "rocas" es el fin del juego. Por último, debe recolectar objetos (ejemplo:monedas) que vayan sumando a un contador que determina el puntaje final del usuario.
  • Final: Una vez que pierda el jugador, en la pantalla de "Game Over" debe aparecer el puntaje total en el centro de la pantalla.
Animaciones:
El juego en total debe contar con 4 animaciones de por lo menos 4 fotogramas:
  • El personaje principal mientras "avanza" por el escenario.
  • El personaje principal al ser golpeado.
  • El elemento a evadir
  • Los elementos a recolectar (Ejemplo: monedas)
Sonidos:
 El juego debe contar con música de fondo en: Pantalla de inicio, Pantalla de Gameplay y Pantalla de Game Over, cada música debe ser distinta.
Además debe emitir un efecto de sonido: El salto, el choque con la roca, y la recolección de elementos.

Las variables y nombres de funciones utilizadas por el profesor en clase están prohibidas, por cada palabra o nombre encontrado en el código se restará 0.5 puntos a tu examen parcial.


Entregas:

Lunes 27 de Abril
Diseñador:
Bocetos de cada personaje (principal, elemento a esquivar, elemento a recolectar), fondos, pantalla de inicio, game over.
Programador:
Variables identificas inicializadas
Funciones principales
Listeners identificados declarados
Pantalla de inicio creada con rectángulos que lleven a gameplay y a créditos.
Creación de personaje principal y elementos sobre los que se apoya correctamente funcionando.





Miércoles 29 de Abril
Diseñador:
Todos los elementos del juego terminados (Principal a esquivar, a recolectar, fondos, pantalla inicio y game over)
Primer búsqueda de audio entregable.

Programador:
Personaje principal esquiva elementos y recolecta objetos. (Sin marcadores, el elemento a recolectar debe desaparecer).
Mandar a pantalla de Game Over si cae al vacío, y permitir el reinicio del juego.}

Viernes 01 de Mayo (Entrega virtual)
Diseñador:
Todas las hojas de sprites terminadas.

Programador:
Marcador a favor, marcador en contra.

Lunes  04 de Mayo
Diseñador:
Audio final definido.
Diseño de botones de pantalla de inicio.
Pantalla de inicio y de gameover.
Diseño de arte para Play Store.


Programador:
Aplicar todas las animaciones.

Miércoles 06 de Mayo
Diseñador:
-

Programador:
Aplicar gráficos de pantalla de inicio, botónes de inicio y gameover.
Alta del juego en la Play Store.






Rúbrica:
Para contar con los puntos debe estar perfectamente cumplido cada uno de los puntos siguientes sin error alguno, con una sóla cosa que falte, no se obtendrá calificación:

- Pantalla de incio, créditos  y fin de juego.  (2 puntos)
- Animaciones y background scrolling (2 puntos)
- Audio (2 puntos)
- Listeners (2 puntos)
- Puntajes a favor y en contra (2 puntos)

Tumble

Funcionalidad general:


  • Pantalla de inicio: Contar con un botón al Gameplay y otro que muestre los créditos.
  • Background Parallax Scrolling: Contar dos capas de fondo en movimiento. La capa más lejana más lenta y la más cercana al sprite principal un poco más rápida.
  • Movimiento: El personaje principal se debe mover con un botón para izquierda y otro para derecha.
  • Elementos:  El personaje debe caer por huecos entre los "rectángulos" para ir avanzando hacia la parte inferior de la pantalla. Si el personaje llega al borde superior de la pantalla debe ser el fin del juego. Además, debe haber un elemento enemigo que se deba esquivar, este podría subir o bajar por la pantalla pasando a través de los rectángulos que representan el piso. Por último, debe recolectar objetos (ejemplo:monedas) que vayan sumando a un contador que determina el puntaje final del usuario.
  • Final: Una vez que pierda el jugador, en la pantalla de "Game Over" debe aparecer el puntaje total en el centro de la pantalla.
Animaciones:
El juego en total debe contar con 4 animaciones de por lo menos 4 fotogramas:
  • El personaje principal mientras "avanza" por el escenario.
  • El los rectángulos "piso" por donde avanza el personaje principal debe tener animación.
  • Los elementos a recolectar (Ejemplo: monedas) 
  • El personaje a evadir y que pasa a través de los rectángulos que representan el piso.
Sonidos:
El juego debe contar con música de fondo en: Pantalla de inicio, Pantalla de Gameplay y Pantalla de Game Over, cada música debe ser distinta.
Además debe emitir un efecto de sonido: Avance del personaje principal, aparición del personaje a evadir y la recolección de elementos.
Las variables y nombres de funciones vistas en ejemplos por el profesor están prohibidas, por cada palabra o nombre encontrado en el código se restará 0.5 puntos a tu examen parcial.


Entregas:

Lunes 27 de Abril
Diseñador:
Bocetos de cada personaje (principal, elemento a esquivar, elemento a recolectar), fondos, pantalla de inicio, game over.
Programador:
Variables identificas inicializadas
Funciones principales
Listeners identificados declarados
Pantalla de inicio creada con rectángulos que lleven a gameplay y a créditos.
Creación de personaje principal y elementos sobre los que se apoya y avanza correctamente funcionando.





Miércoles 29 de Abril
Diseñador:
Todos los elementos del juego terminados (Principal a esquivar, a recolectar, fondos, pantalla inicio y game over)
Primer búsqueda de audio entregable.

Programador:
Personaje principal esquiva elementos y recolecta objetos. (Sin marcadores, el elemento a recolectar debe desaparecer).
Mandar a pantalla de Game Over si cae al vacío, y permitir el reinicio del juego.}

Viernes 01 de Mayo (Entrega virtual)
Diseñador:
Todas las hojas de sprites terminadas.

Programador:
Marcador a favor, marcador en contra.

Lunes  04 de Mayo
Diseñador:
Audio final definido.
Diseño de botones de pantalla de inicio.
Pantalla de inicio y de gameover.
Diseño de arte para Play Store.


Programador:
Aplicar todas las animaciones.

Miércoles 06 de Mayo
Diseñador:
-

Programador:
Aplicar gráficos de pantalla de inicio, botónes de inicio y gameover.
Alta del juego en la Play Store.






Rúbrica:
Para contar con los puntos debe estar perfectamente cumplido cada uno de los puntos siguientes sin error alguno, con una sóla cosa que falte, no se obtendrá calificación:

- Pantalla de incio, créditos  y fin de juego.  (2 puntos)
- Animaciones y background scrolling (2 puntos)
- Audio (2 puntos)
- Listeners (2 puntos)
- Puntajes a favor y en contra (2 puntos)

Cliff Jump

Funcionalidad general:

  •  Pantalla de inicio: Contar con un botón al Gameplay y otro que muestre los créditos.
  • Background Parallax Scrolling: Contar dos capas de fondo en movimiento. La capa más lejana más lenta y la más cercana al sprite principal un poco más rápida.
  • Salto: El salto puede ser sencillo o doble, debe haber obstáculos que sólo se puedan lograr con un salto doble, el tap o touch debe ser en cualquier parte de la pantalla.
  • Elementos a esquivar y/o recolectar: El personaje debe saltar y (1)apoyarse en objetos que eviten caiga al vacío, si llega a caer significa el fin del juego. Además debe (2)evadir obstáculos que aparezcan sobre los objetos que debe pisar, tal como lo hacen las rocas en Cliff Jump; al chocar tu personaje con este objeto, no debe terminar el juego, sólo debe restarle vidas, la cantidad la decides tu, es decir, si choca con  "rocas" es el fin del juego. Por último, debe recolectar objetos (ejemplo:monedas) que vayan sumando a un contador que determina el puntaje final del usuario.
  • Final: Una vez que pierda el jugador, en la pantalla de "Game Over" debe aparecer el puntaje total en el centro de la pantalla.
Animaciones:
El juego en total debe contar con 4 animaciones de por lo menos 4 fotogramas:
  • El personaje principal mientras "avanza" por el escenario.
  • El personaje principal al saltar.
  • El elemento a evadir (Ejemplo de Cliff Jump: la roca)
  • El elemtnos a recolectar (Ejemplo: monedas)
Sonidos:
 El juego debe contar con música de fondo en: Pantalla de inicio, Pantalla de Gameplay y Pantalla de Game Over, cada música debe ser distinta.
Además debe emitir un efecto de sonido: El salto, el choque con la roca, y la recolección de elementos.

Las siguientes variables y nombres de funciones están prohibidas, por cada palabra o nombre encontrado en el código se restará 0.5 puntos a tu examen parcial:
monkey


Entregas:

Lunes 27 de Abril
Diseñador:
Bocetos de cada personaje (principal, elemento a esquivar, elemento a recolectar), fondos, pantalla de inicio, game over.
Programador:
Variables identificas inicializadas
Funciones principales
Listeners identificados declarados
Pantalla de inicio creada con rectángulos que lleven a gameplay y a créditos.
Creación de personaje principal y elementos sobre los que se apoya correctamente funcionando.





Miércoles 29 de Abril
Diseñador:
Todos los elementos del juego terminados (Principal a esquivar, a recolectar, fondos, pantalla inicio y game over)
Primer búsqueda de audio entregable.

Programador:
Personaje principal esquiva elementos y recolecta objetos. (Sin marcadores, el elemento a recolectar debe desaparecer).
Mandar a pantalla de Game Over si cae al vacío, y permitir el reinicio del juego.}

Viernes 01 de Mayo (Entrega virtual)
Diseñador:
Todas las hojas de sprites terminadas.

Programador:
Marcador a favor, marcador en contra.

Lunes  04 de Mayo
Diseñador:
Audio final definido.
Diseño de botones de pantalla de inicio.
Pantalla de inicio y de gameover.
Diseño de arte para Play Store.


Programador:
Aplicar todas las animaciones.

Miércoles 06 de Mayo
Diseñador:
-

Programador:
Aplicar gráficos de pantalla de inicio, botónes de inicio y gameover.
Alta del juego en la Play Store.






Rúbrica:
Para contar con los puntos debe estar perfectamente cumplido cada uno de los puntos siguientes sin error alguno, con una sóla cosa que falte, no se obtendrá calificación:

- Pantalla de incio, créditos  y fin de juego.  (2 puntos)
- Animaciones y background scrolling (2 puntos)
- Audio (2 puntos)
- Listeners (2 puntos)
- Puntajes a favor y en contra (2 puntos)





sábado, 24 de enero de 2015

Colisiones

Existen 3 tipos:

collision

Para estar a la escucha de una colisión de este tipo, el evento se deberá llamar "collision". Este incluye las fases: "began" y "ended", que significan los momento de inicio y roptura del contacto.

preCollision

 Este evento se llama, justo antes que los objetos entren en contacto o interactúen.

postCollision

Este evento se llama, justo después que terminó la intracción entre objetos.

Manejo de Colisiones

Manejo Global

local crate1 = display.newImage( "crate.png", 100, 200 )
physics.addBody( crate1, { density = 1.0, friction = 0.3, bounce = 0.2 } )
crate1.myName = "first crate"

local crate2 = display.newImage( "crate.png", 100, 120 )
physics.addBody( crate2, { density = 1.0, friction = 0.3, bounce = 0.2 } )
crate2.myName = "second crate"

local function onCollision( event )

    if ( event.phase == "began" ) then

        print( "began: " .. event.object1.myName .. " and " .. event.object2.myName )

    elseif ( event.phase == "ended" ) then

        print( "ended: " .. event.object1.myName .. " and " .. event.object2.myName )

    end
end

Runtime:addEventListener( "collision", onCollision )
 
 
Manejo Local
 
 
local crate1 = display.newImage( "crate.png" )
physics.addBody( crate1, { density=3.0, friction=0.5, bounce=0.3 } )
crate1.myName = "first crate"

local crate2 = display.newImage( "crate.png" )
physics.addBody( crate2, { density=3.0, friction=0.5, bounce=0.3 } )
crate2.myName = "second crate"

local function onLocalCollision( self, event )

    if ( event.phase == "began" ) then

        print( self.myName .. ": collision began with " .. event.other.myName )

    elseif ( event.phase == "ended" ) then

        print( self.myName .. ": collision ended with " .. event.other.myName )

    end
end

crate1.collision = onLocalCollision
crate1:addEventListener( "collision", crate1 )

crate2.collision = onLocalCollision
crate2:addEventListener( "collision", crate2 )
 
 
 
  

Física

Corona incluye un motor de física que no requiere de amplios conocimientos previos en física para poder utilizarlo.

Para comenzar a trabajar con física, hace falta instanciar de esta manera:

local fis = require( "physics" )
 
Algunas funciones de la física son:
 

  • fis.start() — Inicia el motor de física o continúa si estaba en pausa. Debes iniciar la física antes de agregarla a cualquier elemento.
  • fis.pause() — Pausa la simulación de física.
  • fis.stop() — Destruye la simulación de física. Si sólo quieres detenerla, debes usar fis.pause().
Opciones de simulación de física 

physics.setGravity() Establece los componentes en x y y del vector de gravedad, en unidades: m/s². Por default es ( 0, 9.8 ) para simular la gravedad del planeta tierra, apuntando hacia abajo en el eje de las Y.

Cuerpos
El mundo de la física en Corona se basa en la interacción de cuerpos físicos. Corona trata a los objetos como cuerpos físicos.

Con el simulador de física activado, los objetos continuarán su estado normal en x y y, rotación, entre todas sus propiedades. Pero, si el objeto es de tipo "dinámico", el motor de física "luchará" contra los intentos de moverlos manualmente, según la fuerza de gravedad y colisiones por ejemplo.

Nota: Cuando eliminas un objeto con object:removeSelf() o display.remove(), esto elimina el objeto de la pantalla y también detiene la simulación física. Sin emargo, si deseas sólo reitarlo como elemento físico, pero que se siga viendo en pantalla, puedes usar: physics.removeBody().

Creando cuerpos

Para crear cuerpos, se hace de la siguiente manera:

physics.addBody( object, { properties } )
 
Las propiedades que puedes utilizar son:
 
Density
 
La densidad se multiplica por el área del cuerpo para determinar su masa. Este
parámetro se basa en el valor estándar 1.0 del agua. Así que los materiales que sean más ligeros
que el agua (como la madera) tienen una densidad menor a 1.0, y los más pesados (como la roca)
tiene una densidad por encima de 1.0.
 
 
Friction

La fricción nunca debe ser negativa. Un valor de 0 significa que no tiene fricción y 1.0
significa una fuerte fricción. El valor default es de: 0.3.

Bounce

El rebote determina la velocidad a la que un objeto regresa tras una colisión.
Los valores mayores a 0.3 suelen rebotar mucho, y un objeto con rebote de 1.0, rebotará por siempre.
Por ejemplo, Si un elemento lo tirán en el piso, rebotará casi a la misma distancia desde
la que fue soltado. Valores de rebote mayores a 1 son válidos, y estos tomarán impulso
trás cada rebote que realice. el valor por default es de 0.2, lo que hace los objetos
"algo rebotables". 

--Ejemplo 1
 
local crate = display.newImage( "crate.png", 100, 200 )
physics.addBody( crate, { density=1.0, friction=0.3, bounce=0.2 } )

local balloon = display.newImage( "balloon.png", 200, 200 )
physics.addBody( balloon, { density=0.1, friction=0.1, bounce=0.4 } )
 
 
 -- Ejemplo 2

local crate1 = display.newImage( "crate1.png", 100, 200 )
local crate2 = display.newImage( "crate2.png", 180, 280 )

local crateMaterial = { density=1.0, friction=0.3, bounce=0.2 }

physics.addBody( crate1, crateMaterial )
physics.addBody( crate2, crateMaterial )


Tipos de cuerpos

dynamic

Estos cuerpos se pueden mover manualmente, pero son afectados totalmente por la física, colisiones y gravedad.

static

Estos cuerpos no se mueven, y simulan las masas físicas como la tierra. Estos cuerpos sólo pueden chocar contra cuerpos dinámicos y nunca con otros estáticos.

Dos formas de usarlos:

--Forma 1

physics.addBody( triangle, "static", { density=1.6, friction=0.5, bounce=0.2 } )
 
--Forma 2
 
physics.addBody( triangle, { density=1.6, friction=0.5, bounce=0.2 } )
triangle.bodyType = "static"
 
 
Formas de cuerpos 


Cuerpos rectangulares

Por default, todos los cuerpos físicos son rectangulares. Los bordes del rectángulo
rodean la imagen. Si la imagen tiene transparencias, estás también estarán dentro del rectángulo.
 
--Ejemplo
local platform = display.newImage( "platform.png", 600, 200 )
physics.addBody( platform, { density=1.0, friction=0.3, bounce=0.2 } ) 
  
Cuerpos circulares

Los cuerpos circulares se crean agregando el parámetro de radio. Esto funciona para pelotas, rocas y otros objetos que pueden tener aspecto circular. Los óvalos no existen, sólo puedes simularlos con polígonos.

--Ejemplo
local ball = display.newImage( "ball.png", 100, 100 )
physics.addBody( ball, { radius=50, density=1.0, friction=0.3, bounce=0.2 } )
 
 
 Cuerpos polígonos

Estos cuerpos pueden crearse con coordenadas en x,y de cada punto del objeto.


Sensores
Cualquier cuerpo puede ser un sensor, la gran diferencia de estos, es que no interactúan con otros cuerpos, pero al colisionar con otros, lanzan un evento de colisión, sin embargo pasan por encima de ellos.



--Forma 1
physics.addBody( goal, "static", { isSensor=true } )

--Forma 2
physics.addBody( goal, "static" )
goal.isSensor = true

 Balas

Las balas en videojuegos deben ser tratadas con características diferentes dada su peculiaridad:

local bullet = display.newCircle( 100, 100, 10 )
physics.addBody( bullet, "dynamic", { radius=10 } )
bullet.gravityScale = 0

--Make the object a "bullet" type object
bullet.isBullet = true

bullet:setLinearVelocity( 800,0 )
 
 
  
Funciones en los cuerpos físicos


SetLinearVelocity

Establece los componentes x, y para ejercer fuerza lineal en el cuerpo, en pixeles por segundo.

object:setLinearVelocity( 2, 4 )
 
GetLinearVelocity
 
Obtiene los componentes x, y de la fuerza ejercida, en pixeles por segundo.
 
local vx, vy = object:getLinearVelocity()
print( "Linear X velocity = " .. vx )
print( "Linear Y velocity = " .. vy )
 
 
applyForce
 
Se aplica una fuerza con componentes x, y en punto seleccionado relacionado con la pantalla.
Por ejemplo, si se aplica una fuerza, justo en el centro de un objeto, este se desplazará en línea recta
 
object:applyForce( 500, 2000, object.x, object.y )