Diapositiva 1

Transcripción

Diapositiva 1
Lenguaje de Programación I
ActionScript y FlashPunk
Nota: Mucho del código que se verá aquí corresponde a los tutoriales de
FlashPunk, debido a que aquí se mostrarán las bases del lenguaje y el engine.
Entity
Métodos:
•CollideWith(Entity)
•DistanceFrom(Entity)
•MoveBy(velX, vely)
•MoveTo(x , y)
•MoveTowards(x, y, vel)
•Update() **
Atributos:
•x
•y
•visible
•Sprite
•width
•height
World
Métodos:
•Add( Entity )
•Remove( Entity )
•RemoveAll()
•Update() **
Atributos:
Pseudo-código
Clase Ball extiende de Entity
inicio
velocidadX = (aleatorio entre 10 y 20 / -10 y -20)
velocidadY = (aleatorio entre 10 y 20 / -10 y -20)
estado = HONDA; (HONDA, MIENDOSE)
Update()
inicio
MoveBy( velocidadX, velocidadY).
si y <= 0 o y >= 600
velocidadY = -velocidadY
si CollideWith( Player1 ) o CollideWith( Player2 )
velocidadX = -velocidadX
fin
fin
Código
Class Ball extends Entity
{
velocidadX = (aleatorio entre 10 y 20 / -10 y -20);
velocidadY = (aleatorio entre 10 y 20 / -10 y -20);
Update()
{
MoveBy( velocidadX, velocidadY);
if (y <= 0 || y >= 600)
velocidadY = -velocidadY;
if (CollideWith( Player1 ) || CollideWith( Player2 ))
velocidadX = -velocidadX;
}
}
Primeros Pasos
Main
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
public function Main()
{
trace("Hola Mundo");
}
}
}
Package
 Se utilizan para organizar código, el cual puede tener un
nombre para diferenciar distintos códigos.
package MiJuego
{
…
}
Import
 Indica el código que puede ser utilizado en una clase
 import flash.display.Sprite; Indica que es utilizado el código de
flash.display.Sprite.
Extends Sprite
 Indica que se ejecutará
como un archivo swf.
Método Main
 Todo programa necesita una entrada por donde comenzar a
ejecutar.
 Main es el primer código que se ejecuta, y hace todas las
llamadas para que el programa se ejecute.
Método Trace
trace("Hola Mundo");
 Muestra un texto en consola.
Flash Punk
Clase Main
package
{
import net.flashpunk.Engine;
public class Main extends Engine
{
public function Main() : void
{
super(800, 600, 60, false);
}
}
}
FlashPunk
 super(width, height, framerate, fixed-framerate)
 Le indica al engine la configuración inicial del juego, en cuanto
al tamaño de la pantalla y el framerate.
World
Métodos:
•Add( Entity )
•Remove( Entity )
•RemoveAll()
•Init() **
•Update() **
Atributos:
World
package
{
import net.flashpunk.World;
public class MyWorld extends World
{
public function MyWorld()
{
}
}
}
World
package
{
import net.flashpunk.Engine;
import net.flashpunk.FP;
public class Main extends Engine
{
public function Main()
{
super(800, 600, 60, false);
FP.world = new MyWorld();
}
}
}
World
 En esta clase se debiesen crear todos los elementos del juego.




Player.
Escenario.
Enemigos.
…
 Se debe agregar en el main, al engine como el mundo actual del
juego.
FP
 Clase de configuración de FlashPunk.
 Contiene las variables principales del juego, tales como la
cámara, el mundo, la pantalla, etc.
 Se pueden acceder a dichas variables desde cualquier punto
del juego.
Entity
Métodos:
•CollideWith(Entity)
•DistanceFrom(Entity)
•MoveBy(velX, vely)
•MoveTo(x , y)
•MoveTowards(x, y, vel)
•Update() **
Atributos:
•x
•y
•Visible
•width
•height
Entity
package
{
import net.flashpunk.Entity;
public class Player extends Entity
{
public function Player ()
{
}
override public function update():void
{
trace(“El player se esta actualizando...");
}
}
}
Entity
package
{
import net.flashpunk.World;
public class MyWorld extends World
{
public function MyWorld()
{
add(new Player() );
}
}
}
Entity
 Representa a una entidad del juego.
 Para que esta se integre al juego, la clase del mundo debe
agregarla.
Introducción a ActionScript
Variables
 Representan a los atributos de las clases.
 Pueden ser de diferentes tipos de datos: int, float, bool,
string.
 var velocidad:int = 0;
Clases y Objetos
 Para crear instancias en el juego se deben crear objetos.
 Se utiliza el operador “new” para crear una nueva instancia de
una clase en el juego.
var player:Player;
player = new Player();
Más
Sprite
package
{
import net.flashpunk.Entity;
import net.flashpunk.graphics.Image;
public class MyEntity extends Entity
{
[Embed(source = 'assets/player.png')] private const PlayerSprite:Class;
public function MyEntity()
{
graphic = new Image(PLAYER);
}
}
}
Movimiento
Variables:
x, y.
Métodos:
moveBy(velX, velY);
moveTo(x, y);
Teclado
override public function update():void
{
if (Input.check(Key.SPACE))
{
// si tecla SPACE está siendo presionada
}
}
if (Input.check(Key.RIGHT))
{
// si tecla RIGHT está siendo presionada
}
if (Input.check(Key.W))
{
// si tecla W está siendo presionada
}
Teclado
if (Input.pressed(Key.SPACE))
{
// indica el momento en que es presionada la tecla
}
if (Input.released(Key.SPACE))
{
// indica el momento en que es soltada la tecla.
}

Documentos relacionados