Skip to content

Commit

Permalink
G2D
Browse files Browse the repository at this point in the history
  • Loading branch information
esDotDev committed Apr 27, 2012
1 parent 96a3a8e commit e3ff5ab
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 103 deletions.
4 changes: 3 additions & 1 deletion src/src/ca/esdot/runnermark/RunnerEngine.as
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package ca.esdot.runnermark
import ca.esdot.runnermark.sprites.EnemySprite;
import ca.esdot.runnermark.sprites.GenericSprite;
import ca.esdot.runnermark.sprites.RunnerSprite;
import ca.esdot.runnermark.sprites.SizableNode;
import ca.esdot.stats.FastStats;

import com.genome2d.components.GTransform;
import com.genome2d.core.GNode;

import com.gskinner.zoe.utils.CachedClip;

import flash.display.Bitmap;
Expand Down Expand Up @@ -75,6 +75,8 @@ package ca.esdot.runnermark
lastIncrement = getTimer() + 2000;
runnerScore = 0;

var classes:Array = [new GNode()];

createChildren();

this.stageWidth = stageWidth;
Expand Down
93 changes: 41 additions & 52 deletions src/src/ca/esdot/runnermark/RunnerEngineG2D.as
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ package ca.esdot.runnermark
import ca.esdot.runnermark.sprites.EnemySprite;
import ca.esdot.runnermark.sprites.GenericSprite;
import ca.esdot.runnermark.sprites.RunnerSprite;
import ca.esdot.runnermark.sprites.SizableNode;

import com.genome2d.components.GCamera;
import com.genome2d.components.renderables.GMovieClip;
import com.genome2d.components.renderables.GSprite;
import com.genome2d.core.GNode;
import com.genome2d.textures.GTexture;
Expand All @@ -13,7 +15,8 @@ package ca.esdot.runnermark
import com.genome2d.textures.factories.GTextureFactory;

import flash.display.BitmapData;
import flash.display.MovieClip;

import swc.Runner;

public class RunnerEngineG2D extends RunnerEngine
{
Expand All @@ -30,70 +33,56 @@ package ca.esdot.runnermark

//Create Sky
var skyData:BitmapData = createSkyData();
var skyNode:GNode = new GNode();
var skyNode:SizableNode = new SizableNode(null, 128, 128);
var skySprite:GSprite = skyNode.addComponent(GSprite) as GSprite;
skySprite.setTexture(GTextureFactory.createFromBitmapData("sky", skyData, false));
sky = new GenericSprite(skyNode, null, skyData.width, skyData.height);
sky = new GenericSprite(skyNode, null);
_root.addChild(skyNode);

var bgNode:GNode = new GNode();
var sprite:GSprite = bgNode.addComponent(GSprite) as GSprite;
sprite.setTexture(GTextureFactory.createFromBitmapData("bg1", bg1Data, true));
//Add Bg1
var bg1Tex:GTexture = GTextureFactory.createFromBitmapData("bg1Tex", bg1Data, true);
var bgNode:SizableNode = new SizableNode(null, bg1Data.width * 2, bg1Data.height);
var node:GNode = new GNode();
var sprite:GSprite = node.addComponent(GSprite) as GSprite;
sprite.setTexture(bg1Tex);
bgNode.addChild(node);

node = new GNode();
sprite = node.addComponent(GSprite) as GSprite;
sprite.setTexture(bg1Tex);
node.transform.x = bg1Data.width;
bgNode.addChild(node);

bgStrip1 = new GenericSprite(bgNode, null, bg1Data.width, bg1Data.height);
bgStrip1 = new GenericSprite(bgNode, null);
_root.addChild(bgNode);

//Create a TextureAtlas dynamically using the DynamicTexture plugin.
/*
atlas = DynamicAtlas.fromClassVector(new <Class>[
swc.Enemy,
swc.Runner,
Cloud,
Bg1,
Bg2,
GroundTop
]);
//Add Bg2
var bg2Tex:GTexture = GTextureFactory.createFromBitmapData("bg2Tex", bg2Data, true);
bgNode = new SizableNode(null, bg2Data.width * 2, bg2Data.height);
node = new GNode();
sprite = node.addComponent(GSprite) as GSprite;
sprite.setTexture(bg2Tex);
bgNode.addChild(node);

var bitmap1:Image, bitmap2:Image;
var sprite:Sprite = new Sprite();
node = new GNode();
sprite = node.addComponent(GSprite) as GSprite;
sprite.setTexture(bg2Tex);
node.transform.x = bg2Data.width;
bgNode.addChild(node);

//BG Strip 1
bitmap1 = new Image(atlas.getTextures("ca.esdot.runnermark::RunnerEngine_Bg1")[0]);
bitmap1.smoothing = TextureSmoothing.NONE;
sprite.addChild(bitmap1);
bitmap2 = new Image(Texture.fromBitmap(new Bg1()));
bitmap2.smoothing = TextureSmoothing.NONE;
bitmap2.x = bitmap1.width;
sprite.addChild(bitmap2);
*/
bgStrip1 = new GenericSprite({});
//_root.addChild(bgStrip1.display);
bgStrip2 = new GenericSprite(bgNode, null);
_root.addChild(bgNode);

//BG Strip 2
/*
sprite = new Sprite();
bitmap1 = new Image(atlas.getTextures("ca.esdot.runnermark::RunnerEngine_Bg2")[0]);
bitmap1.smoothing = TextureSmoothing.NONE;
sprite.addChild(bitmap1);
bitmap2 = new Image(Texture.fromBitmap(new Bg2()));
bitmap2.smoothing = TextureSmoothing.NONE;
bitmap2.x = bitmap1.width;
sprite.addChild(bitmap2);
*/
bgStrip2 = new GenericSprite({});
//_root.addChild(bgStrip2.display);
//Add Runner
var atlas:GTextureAtlas = GTextureAtlasFactory.createFromMovieClip("runnerAtlas", new swc.Runner());
node = new SizableNode(null, 70, 120);

//Runner
/*
var clip:MovieClip = new MovieClip(atlas.getTextures("swc::Runner"), 60);
clip.x = stageWidth * .2;
clip.y = stageHeight * .7;
var clip:GMovieClip = node.addComponent(GMovieClip) as GMovieClip;
clip.setTextureAtlas(atlas);
clip.play();
*/
//_root.addChild(clip);

runner = new RunnerSprite({});
//_root.addChild(runner.display);
runner = new RunnerSprite(node);
_root.addChild(node);
}

override protected function stopEngine():void {
Expand Down
72 changes: 22 additions & 50 deletions src/src/ca/esdot/runnermark/sprites/GenericSprite.as
Original file line number Diff line number Diff line change
Expand Up @@ -8,87 +8,59 @@ package ca.esdot.runnermark.sprites

public class GenericSprite
{
public var display:Object;
public var display:*;
public var type:String;

public var groundY:int = 0;
protected var gravity:Number = 1;
protected var isJumping:Boolean = false;
protected var velY:int;
protected var origW:int;
protected var origH:int;

protected var transform:*;

public function GenericSprite(display:Object, type:String=null, w:int = 0, h:int = 0){
this.origW = w;
this.origH = h;
public function GenericSprite(display:*, type:String=null){
this.display = display;
this.type = type;

transform = display;
if(display is GNode){
transform = transform.transform;
}
}

public function get rotation():Number { return transform.rotation; }
public function get rotation():Number { return display.rotation; }
public function set rotation(value:Number):void {
transform.rotation = value;
display.rotation = value;
}

public function get x():Number { return transform.x; }
public function get x():Number { return display.x; }
public function set x(value:Number):void {
transform.x = value;
display.x = value;
}

public function get y():Number { return transform.y; }
public function get y():Number { return display.y; }
public function set y(value:Number):void {
transform.y = value;
display.y = value;
}

public function get width():Number {
if(transform is GTransform){
return transform.scaleX * origW;
}
return transform.width;
}
public function get width():Number { return display.width; }
public function set width(value:Number):void {
if(transform is GTransform){
scaleX = value / origW;
return;
}
transform.width = value;
display.width = value;
}

public function get height():Number {
if(transform is GTransform){
return transform.scaleY * origH;
}
return transform.height;

}
public function get height():Number { return display.height; }
public function set height(value:Number):void {
if(transform is GTransform){
scaleY = value / origH;
return;
}
transform.height = value;
display.height = value;
}

public function get scaleX():Number { return transform.scaleX; }
public function get scaleX():Number { return display.scaleX; }
public function set scaleX(value:Number):void {
transform.scaleX = value;
display.scaleX = value;
}

public function get scaleY():Number { return transform.scaleY; }
public function set scaleY(value:Number):void {
transform.scaleY = value;
public function get alpha():Number { return display.alpha; }
public function set alpha(value:Number):void {
display.alpha = value;
}

public function get alpha():Number { return transform.alpha; }
public function set alpha(value:Number):void {
transform.alpha = value;
public function get scaleY():Number { return display.scaleY; }
public function set scaleY(value:Number):void {
display.scaleY = value;
}


}
}
62 changes: 62 additions & 0 deletions src/src/ca/esdot/runnermark/sprites/SizableNode.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package ca.esdot.runnermark.sprites
{
import com.genome2d.components.GComponent;
import com.genome2d.components.renderables.GSprite;
import com.genome2d.core.GNode;
import com.genome2d.textures.GTexture;

import flash.geom.Rectangle;

public class SizableNode extends GNode
{
protected var _oHeight:int;
protected var _oWidth:int;

public function SizableNode(p_id:String="", width:int = 0, height:int = 0){
super(p_id);
_oWidth = width;
_oHeight = height;
}

public function get width():int { return _oWidth * scaleX; }
public function set width(value:int):void {
transform.scaleX = value / _oWidth;
}

public function get height():int { return _oHeight * scaleY; }
public function set height(value:int):void {
transform.scaleY = value / _oHeight;
}

public function get rotation():Number { return transform.rotation; }
public function set rotation(value:Number):void {
transform.rotation = value;
}

public function get x():Number { return transform.x; }
public function set x(value:Number):void {
transform.x = value;
}

public function get y():Number { return transform.y; }
public function set y(value:Number):void {
transform.y = value;
}

public function get scaleX():Number { return transform.scaleX; }
public function set scaleX(value:Number):void {
transform.scaleX = value;
}

public function get alpha():Number { return transform.alpha; }
public function set alpha(value:Number):void {
transform.alpha = value;
}

public function get scaleY():Number { return transform.scaleY; }
public function set scaleY(value:Number):void {
transform.scaleY = value;
}

}
}

0 comments on commit e3ff5ab

Please sign in to comment.