Videojuegos con Corona SDK

22

Transcript of Videojuegos con Corona SDK

Page 1: Videojuegos con Corona SDK
Page 2: Videojuegos con Corona SDK

SPRITE ANIMADO

Page 3: Videojuegos con Corona SDK

sheetData

spriteSheet = Imagen + sheetData

Características para la hoja de sprites como: ancho y alto de la hoja, ancho y alto por fotograma, cantidad de fotogramas.

Page 4: Videojuegos con Corona SDK

SequenceData

sprite = + spriteSheet

Sequence Data

Page 5: Videojuegos con Corona SDK

CONFIGURACIÓNlocal objectSheetData = {

width = 512,

height = 256,

numFrames = 8,

sheetContentHeight = 512,

sheetContentWidth = 2048

}

local objectSpriteSheet = graphics.newImageSheet( “image_path.png", objectSheetData )

Page 6: Videojuegos con Corona SDK

SECUENCIA E IMPLEMENTACIÓNlocal objectSequenceData = { { name = “avanza", start = 1, count = 8, time = 800, loopCount = 0 } }

local object = display.newSprite( objectSpriteSheet , objectSequenceData )

Page 7: Videojuegos con Corona SDK

EJECUCIÓN

object:setSequence( “avanza” )object:play()

Page 8: Videojuegos con Corona SDK

TRANSICIÓN

Page 9: Videojuegos con Corona SDK

transition.to( object , { x = display.contentCenterX , time = 500 } )

transition.to

Objeto Propiedades

Page 10: Videojuegos con Corona SDK

PROPIEDADES DE TRANSICIÓNtime : Número de milisegundos, por default son 500iterations: Número de repeticiones, por default 1delay: Retraso en milisegundos, default 0x: Coordenada en xy: Coordenada en yrotation: Ángulo de rotaciónalpha: Transparencia 0, opaco 1.xScale: Escala en número en X.yScale: Escala en número en Y.onComplete: Función que se llama una vez completada la transición.

Page 11: Videojuegos con Corona SDK

TEMPORIZADORESEJECUTA UNA FUNCIÓN CADA CIERTOS MILISEGUNDOS UNA CANTIDAD

DE VECES DETERMINADA.

Page 12: Videojuegos con Corona SDK

local timerObjetos = timer.performWithDelay( 1000 , lanzaObjeto, 0)

Timer.performWithDelay

Milisgundos Función Iteraciones

Page 13: Videojuegos con Corona SDK

FUNCIÓN: LANZAOBJETO1.- Los elementos que lanza esta función deben almacenarse en una tabla.

2.- Requieres crear una y cada elemento creado en la función, almacenarlo en la tabla.

3.- Requieres un contador declarado en cero y que aumentará de 1 en 1 cada vez que se crea un nuevo elemento.

4.- Si vas a crear una transición, debes crear una tabla de transiciones ya que cada elemento se realizará su propia transición.

Page 14: Videojuegos con Corona SDK

local mis_objetos = {}

local mis_transiciones = {}

local mi_contador = 0

local function lanzaObjeto ( event )

mi_contador = mi_contador + 1

mis_objetos[mi_contador] = display.newImageRect( “mi_objeto.png", 100, 100)

mis_objetos[mi_contador].x = 0

mis_transiciones[mi_contador] = transition.to(mis_objetos[mi_contador] , { x= 500, time=2000, onComplete=function(self)

if ( self ~= nil ) then

display.remove( self )

end

end })

end

Page 15: Videojuegos con Corona SDK

FÍSICA

Page 16: Videojuegos con Corona SDK

local physics = require( "physics“ )physics.start()physics.setGravity( 0 , 9.8 )

Debes agregarle física a los elementos que deseas:physics.addBody(mi_objeto)

Page 17: Videojuegos con Corona SDK

COMPOSICIÓN

physics.addBody( mi_objeto, “static” , { density = 3.0, friction = 0.5, bounce = 0.3 } )

physics.addBody

propiedadesobjeto tipo

Page 18: Videojuegos con Corona SDK

tipo

static• NO se mueven de

acuerdo la física. • Sólo colisionan con

objetos dinámicos.• Ejemplo: El suelodynamic• Se mueven de acuerdo a

la física.• Colisionan con todo.• Ejemplo: Una pelota.

kinematic• Se mueven de acuerdo a

su velocidad.• No responden a la

gravedad.• Colisionan sólo con

objetos dinámicos.

Page 19: Videojuegos con Corona SDK

COLISIONES

static

dynamic

kinemati

c

Page 20: Videojuegos con Corona SDK
Page 21: Videojuegos con Corona SDK

propiedades

density: Basado en el agua como estándar con densidad de 1.0. Materiales como la madera debe tener densidad menor a 1.0 y materiales como la roca deben tener densidad mayor a 1.0. Por default es 1.0.

friction: Valores entre 0 a 1. Por default es 0.3.

bounce: Determina la velocidad de regreso tras una colisión.

isSensor: Al estar activado, se detecta la colisión, pero no produce un respuesta física.

radius: Determina el radio, sólo ara cuerpos circulares.

Page 22: Videojuegos con Corona SDK

FÍSICA PARA PROGRAMAR

• physics.setDrawMode( "hybrid" )