1
1
package
2
2
{
3
+ import flash.display.Loader ;
3
4
import flash.geom.Point ;
5
+ import flash.utils.Dictionary ;
4
6
5
7
import flashx.textLayout.formats.BackgroundColor ;
6
8
9
11
import org.flixel.FlxTilemap ;
10
12
11
13
public class PlayState extends FlxState
12
- {
13
- [Embed (source="assets/floor.png" )] private var ImgFloor: Class ;
14
-
14
+ {
15
15
protected var player: Player;
16
16
protected var currentBlock: Block = new Block();
17
17
public var allBlocks: FlxGroup = new FlxGroup();
@@ -21,6 +21,7 @@ package
21
21
private var maxGenerationTimer: Number = 0.2 ;
22
22
private var winText: FlxText;
23
23
private var coords: Array = new Array ();
24
+ private var blockFlavors: Dictionary = new Dictionary ();
24
25
25
26
override public function create ():void
26
27
{
@@ -29,6 +30,15 @@ package
29
30
player. state = this ;
30
31
add (player);
31
32
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
+
32
42
// Set up coords
33
43
coords = [
34
44
new Point (FlxG. width / 2 - 8 ,FlxG. height - 4 ),
@@ -55,7 +65,7 @@ package
55
65
for (var i: String in coords)
56
66
{
57
67
point = coords[ i];
58
- addBlock(point. x ,point. y );
68
+ addBlock(point. x ,point. y , "green" );
59
69
}
60
70
}
61
71
@@ -65,14 +75,40 @@ package
65
75
if (currentBlock. hasLanded() || ! currentBlock. alive)
66
76
{
67
77
// 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() );
69
79
}
70
80
}
71
81
72
- public function addBlock ( X : Number , Y : Number ): void
82
+ public function randomBlockFlavor (): String
73
83
{
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
+ {
74
109
// Create block
75
- currentBlock = new Block(X ,Y );
110
+ currentBlock = new Block(X ,Y ,imageFromString(flavor));
111
+ currentBlock. flavor = flavor;
76
112
// Add block to list of blocks and to screen
77
113
allBlocks. add (currentBlock);
78
114
add (currentBlock);
0 commit comments