Skip to content

Commit c152e4b

Browse files
committed
there are multiple flavors of blocks. It was done in a really convoluted way, because flash builder won't let you embed a string unless it can find the path
1 parent 0257274 commit c152e4b

File tree

2 files changed

+56
-11
lines changed

2 files changed

+56
-11
lines changed

src/Block.as

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,28 @@ package
44

55
public class Block extends FlxSprite
66
{
7-
[Embed(source="assets/green.png")] private var ImgBlock:Class;
7+
// [Embed(source="assets/green.png")] private var MintChipImg:Class;
88

99
private var actionTimer:Number = 0;
1010
public var maxActionTimer:Number = 0.5;
1111
public var allBlocks:FlxGroup = new FlxGroup();
1212
public var ceiling:Block = null;
1313
public var maxTowerHeight:Number = 3;
14-
public var flavor:String = "mint chip";
14+
public var flavor:String = null;
1515

16-
public function Block(X:Number=0, Y:Number=0)
16+
public function Block(X:Number=0, Y:Number=0, SimpleGraphic:Class=null)
1717
{
18-
super(X, Y, ImgBlock);
18+
super(X, Y, SimpleGraphic);
1919
}
20+
21+
// public function BlockWithFlavor(X:Number,Y:Number,flavorString:String):Block
22+
// {
23+
// flavor = flavorString;
24+
//// var sourceString:String = "assets/".concat(flavor.concat(".png"));
25+
// [Embed(source="assets/green.png")] var BlockImg:Class;
26+
//// [Embed(source=sourceString)] var BlockImg:Class;
27+
// return Block(X,Y,BlockImg);
28+
// }
2029

2130
public function steadyFall():void {move(0,frameHeight);}
2231

src/PlayState.as

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package
22
{
3+
import flash.display.Loader;
34
import flash.geom.Point;
5+
import flash.utils.Dictionary;
46

57
import flashx.textLayout.formats.BackgroundColor;
68

@@ -9,9 +11,7 @@ package
911
import org.flixel.FlxTilemap;
1012

1113
public class PlayState extends FlxState
12-
{
13-
[Embed(source="assets/floor.png")] private var ImgFloor:Class;
14-
14+
{
1515
protected var player:Player;
1616
protected var currentBlock:Block = new Block();
1717
public var allBlocks:FlxGroup = new FlxGroup();
@@ -21,6 +21,7 @@ package
2121
private var maxGenerationTimer:Number = 0.2;
2222
private var winText:FlxText;
2323
private var coords:Array = new Array();
24+
private var blockFlavors:Dictionary = new Dictionary();
2425

2526
override public function create():void
2627
{
@@ -29,6 +30,15 @@ package
2930
player.state = this;
3031
add(player);
3132

33+
// Set up block flavors awkwardly
34+
// (Embeds images and maps them to the strings)
35+
[Embed(source="assets/green.png")] var img0:Class;
36+
var str0:String = "green";
37+
blockFlavors[str0] = img0;
38+
[Embed(source="assets/blue.png")] var img1:Class;
39+
var str1:String = "blue";
40+
blockFlavors[str1] = img1;
41+
3242
// Set up coords
3343
coords = [
3444
new Point(FlxG.width/2 - 8,FlxG.height - 4),
@@ -55,7 +65,7 @@ package
5565
for (var i:String in coords)
5666
{
5767
point = coords[i];
58-
addBlock(point.x,point.y);
68+
addBlock(point.x,point.y,"green");
5969
}
6070
}
6171

@@ -65,14 +75,40 @@ package
6575
if (currentBlock.hasLanded() || !currentBlock.alive)
6676
{
6777
// Add a new block at a random x
68-
addBlock(Math.floor(Math.random()*FlxG.width/4)*4, 0);
78+
addBlock(Math.floor(Math.random()*FlxG.width/4)*4, 0, randomBlockFlavor());
6979
}
7080
}
7181

72-
public function addBlock(X:Number,Y:Number):void
82+
public function randomBlockFlavor():String
7383
{
84+
var flavors:Array = new Array();
85+
var length:Number = 0;
86+
for (var str:String in blockFlavors)
87+
{
88+
// flavors.add(str);
89+
flavors.push(str);
90+
length += 1;
91+
}
92+
return flavors[Math.floor(Math.random()*length)];
93+
}
94+
95+
public function imageFromString(str:String):Class
96+
{
97+
// var sourceString:String = "assets/" + string + ".png";
98+
//// [Embed(source=sourceString,mimeType="image/png")] var img:Class;
99+
//// return img;
100+
// var myLoader:Loader = new Loader();
101+
// var fileRequest:URLRequest = new URLRequest(sourceString);
102+
// myLoader.load(fileRequest);
103+
// return myLoader;
104+
return blockFlavors[str];
105+
}
106+
107+
public function addBlock(X:Number,Y:Number,flavor:String):void
108+
{
74109
// Create block
75-
currentBlock = new Block(X,Y);
110+
currentBlock = new Block(X,Y,imageFromString(flavor));
111+
currentBlock.flavor = flavor;
76112
// Add block to list of blocks and to screen
77113
allBlocks.add(currentBlock);
78114
add(currentBlock);

0 commit comments

Comments
 (0)