Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import net.flashpunk.Entity;
- import net.flashpunk.graphics.Tilemap;
- import net.flashpunk.masks.Grid;
- import flash.utils.ByteArray;
- public class Ground extends Entity
- {
- [Embed(source = "media/maps/tiles/tileset-exterior-00.png")] private const TILES:Class;
- [Embed(source = "media/maps/exterior-map-00.xml", mimeType = "application/octet-stream")] private const MAP_DATA:Class;
- public var map:Tilemap;
- public var solids:Grid;
- public function Ground ():void
- {
- var data:String = "";
- var bytes:ByteArray = new MAP_DATA;
- var layout:XML = new XML (bytes.readUTFBytes (bytes.length));
- map = new Tilemap
- (
- TILES,
- (layout.@width * layout.@tilewidth),
- (layout.@height * layout.@tileheight),
- layout.@tilewidth,
- layout.@tileheight
- );
- data = convertTileData (layout.layer [0].data);
- map.loadFromString (data);
- graphic = map;
- solids = new Grid
- (solids = new Grid
- (
- (layout.@width * layout.@tilewidth),
- (layout.@height * layout.@tileheight),
- layout.@tilewidth,
- layout.@tileheight
- );
- data = layout.layer [1].data;
- solids.loadFromString (data);
- mask = solids;
- (layout.@width * layout.@tilewidth),
- (layout.@height * layout.@tileheight),
- layout.@tilewidth,
- layout.@tileheight
- );
- data = layout.layer [1].data;
- solids.loadFromString (data);
- mask = solids;
- type = "solid";
- }
- public function convertTileData (data:String):String
- {
- var row:Array = data.split (",");
- var newData:String = "";
- var counter:int = 0;
- var value:int = 0;
- for (counter = 0; counter < row.length; counter++)
- {
- if (row [counter].indexOf ("\n") > -1)
- {
- row [counter] = parseInt (row [counter]) - 1;
- if (row [counter] < 0)
- {
- row [counter] = 0;
- }
- if (counter < (row.length - 1))
- {
- row [counter] = "\n" + row [counter];
- }
- }
- else
- {
- row [counter] = parseInt (row [counter]) - 1;
- if (row [counter] < 0)
- {
- row [counter] = 0;
- }
- }
- }
- newData = row.toString();
- return newData;
- }
- }
- }
Add Comment
Please, Sign In to add comment