A Flash Developer Resource Site














Internet Commerce

Partners & Affiliates














Developer Channel

internet.com


Featured Flash FLA
Gallery Downloads 11358 Flash Movies | 4 New Flash Movies Added
What's New | Top 100

Featured FLA

» Author: Sean
» Title: Customizable Flash Drop down menu
» Description: The native source files for building a customizable menu roll down.
» More by Sean


Random FLAs | Add Flash Movie
Featured Flash Site
Gallery Downloads 5709 Flash Sites | 4 New Flash Links
What's New | Top 100 Flash Site

Featured Site

» Posted in the Flash Kit Links section
» Title: Sandy 3D Engine for Flash
» Description: Sandy is a Flash 3D engine, available in 3 versions: AS2, AS3 and haXe


Random Links | Add your own Flash Related Links
Flash Tutorials 1302 Tutorials 7 New Tutorials Added!
What's New | Top100

» MySpace profile flash slideshow
» Display YouTube videos in self-customized Flash video player on website
» How to make cool 3D flash banners for your website?
» Make a Valentines Day Slideshow with Music
» How to remove red eyes from a photo?
» How to convert SWF to Animated GIF on Mac
» How to Make a Platform Game using AS 2 - Part 1
» How to make a flash Greeting e-card
» How to extract Youtube video to MP3 audio for Mac
» Unknown Tag: Title10
Random Tutorial | Add Site

Web Manager
University of Redlnads
US-CA-Redlands

Justtechjobs.com Post A Job | Post A Resume


Tutorials Home What's New Top Rated Submit myTutes Random!

Search Tutorials


Tutorials Tutorials » Games

Categories Tile Based World - Part 1 the Engine
Author: Steven Richardson

 
Page 1
1 2 3 4 next»

Tile Based World Part 1

The Engine

Lets Start

Right, 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 coding

on 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 floor

then 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 collision

then add a second frame with this action

gotoAndPlay (1);

And right click on the man movie in the library and select linkage and export this symbol and call it man

1 2 3 4 next»

» Level Intermediate

Added: : 2002-03-18
Rating: 5.01 Votes: 81
Hits: 785
» Author
Steven Richardson
» Download
Download the files used in this tutorial.
Download (20 kb)
Get conversion and unzipping tools for PC and Mac here!

» Forums
More help? Search our boards for quick answers!

Please rate this tutorial, 10 is the top rating, you can also click the comments link to read/write a review.
10 9 8 7 6 5 4 3 2 1
Read or Post Comments
 
   
 


The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers