Рассмотрим пример ООП кода, где главный герой - кубик, описан в отдельном классе Cube.as
Главный класс запуска игры Main.as:
Общий класс игры Game.as
Класс кубика Cube.as:
Класс описания загруженной графики, который возвращает текстуру Assets.as:
Главный класс запуска игры Main.as:
package
{
import flash.display.Sprite;
import starling.core.Starling;
//Устанавливаем для игры частоту 60, и разрешение 640 на 480, с черным фоном
[SWF(frameRate="60", width="640", height="480", backgroundColor="0x000000")]
public class Main extends Sprite
{
private var _starling:Starling; //Движок
//--------------------------------------------------------
public function Main():void
{
//запускаем движок, класс Game - вход
_starling = new Starling(Game, stage);
_starling.antiAliasing = 1; //Сглаживание
_starling.start();
}
}
}
Общий класс игры Game.as
package
{
import starling.display.Sprite; //Уже не flash, а starling
import starling.events.Event;
public class Game extends Sprite
{
private var objCube:Cube; //Кубик
public function Game()
{
super();
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(e:Event):void
{
//Добавляем кубик
objCube = new Cube; //От класса Cube
this.addChild(objCube);
objCube.x = 10;
objCube.y = 10;
}
}
}
Класс кубика Cube.as:
package
{
import flash.display.Bitmap;
import starling.core.Starling; //Ядро движка
import starling.textures.Texture; //Текстуры
import starling.display.Sprite;
import starling.display.Image;
import starling.events.Event; //События
public class Cube extends Sprite
{
private var objCube:Image;
public function Cube()
{
super();
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage():void
{
this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
//Добавляем кубику текстуру
objCube = new Image(Assets.getTexture());
this.addChild(objCube);
}
}
}
Класс описания загруженной графики, который возвращает текстуру Assets.as:
package
{
import flash.display.Bitmap;
import starling.textures.Texture;
public class Assets
{
//Загружаем картинку
[Embed(source="../sprites/cube.png")]
public static const CubeArt:Class;
public static function getTexture():Texture
{
var bitmap:Bitmap = new Assets["CubeArt"];
var texture:Texture = Texture.fromBitmap(bitmap);
//Возвращаем текстуру
return texture;
}
}
}
Комментариев нет:
Отправить комментарий