|
|
Search Tutorials
Tile Based World Part 1The EngineLets StartRight, set your page to 540x360 and then create 3 blank keyframes.Now go to the library and click the blue new symbol button and select movie and call it man, press ok. Now draw you man 20x20, for now i recommend a circle.The first bit of codingon the first frame of the man movie add this// vars _root.floorx = Math.floor(_x/20); _root.floory = Math.floor(_y/20); _root.floorxl = Math.floor(_x/20)-1; _root.flooryl = Math.floor(_y/20); _root.floorxr = Math.floor(_x/20)+1; _root.flooryr = Math.floor(_y/20); _root.floorxu = Math.floor(_x/20); _root.flooryu = Math.floor(_y/20)-1; _root.floorxd = Math.floor(_x/20); _root.flooryd = Math.floor(_y/20)+1; // diags _root.floorxlu= Math.floor(_x/20)-1; _root.floorylu = Math.floor(_y/20)-1; _root.floorxld= Math.floor(_x/20)-1; _root.flooryld = Math.floor(_y/20)+1; _root.floorxru= Math.floor(_x/20)+1; _root.flooryru = Math.floor(_y/20)-1; _root.floorxrd= Math.floor(_x/20)+1; _root.flooryrd = Math.floor(_y/20)+1; This is to set a coordinate to find out what the 8 20x20 squares around you are e.g a wall or floorthen add this under it
// rands
_root.rand = random (2)+1;
// left
if (eval("_root.map.M" add _root.flooryl)[_root.floorxl] == 0) {
_root.cangoleft = false;
} else if (eval("_root.map.M" add _root.flooryl)[_root.floorxl] == 1) {
_root.cangoleft = true;
}
// right
if (eval("_root.map.M" add _root.flooryr)[_root.floorxr] == 0) {
_root.cangoright = false;
} else if (eval("_root.map.M" add _root.flooryr)[_root.floorxr] == 1) {
_root.cangoright = true;
}
// UP
if (eval("_root.map.M" add _root.flooryu)[_root.floorxu] == 0) {
_root.cangoup = false;
} else if (eval("_root.map.M" add _root.flooryu)[_root.floorxu] == 1) {
_root.cangoup = true;
}
// Down
if (eval("_root.map.M" add _root.flooryd)[_root.floorxd] == 0) {
_root.cangodown = false;
} else if (eval("_root.map.M" add _root.flooryd)[_root.floorxd] == 1) {
_root.cangodown = true;
}
// diagonal
if (eval("_root.map.M" add _root.floorylu)[_root.floorxlu] == 0 and Key.isDown(Key.UP) and Key.isDown(Key.LEFT) and _root.rand == 1) {
_root.cangoleft = false;
} else if (eval("_root.map.M" add _root.floorylu)[_root.floorxlu] == 0 and Key.isDown(Key.UP) and Key.isDown(Key.LEFT) and _root.rand == 2) {
_root.cangoup = false;
}
if (eval("_root.map.M" add _root.flooryld)[_root.floorxld] == 0 and Key.isDown(Key.DOWN) and Key.isDown(Key.LEFT) and _root.rand == 1) {
_root.cangoleft = false;
} else if (eval("_root.map.M" add _root.flooryld)[_root.floorxld] == 0 and Key.isDown(Key.DOWN) and Key.isDown(Key.LEFT) and _root.rand == 2) {
_root.cangodown = false;
}
if (eval("_root.map.M" add _root.flooryrd)[_root.floorxrd] == 0 and Key.isDown(Key.DOWN) and Key.isDown(Key.RIGHT) and _root.rand == 1) {
_root.cangoright = false;
} else if (eval("_root.map.M" add _root.flooryrd)[_root.floorxrd] == 0 and Key.isDown(Key.DOWN) and Key.isDown(Key.RIGHT) and _root.rand == 2) {
_root.cangodown = false;
}
if (eval("_root.map.M" add _root.flooryru)[_root.floorxru] == 0 and Key.isDown(Key.UP) and Key.isDown(Key.RIGHT) and _root.rand == 1) {
_root.cangoright = false;
} else if (eval("_root.map.M" add _root.flooryru)[_root.floorxru] == 0 and Key.isDown(Key.UP) and Key.isDown(Key.RIGHT) and _root.rand == 2) {
_root.cangoup = false;
}
the first bit "//rands" sets a random var for the diagonal cango hittest to stop you going through the walls and the rest is to check the for the collisionthen add a second frame with this actiongotoAndPlay (1);
|
||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||
|