A Flash Developer Resource Site














Internet Commerce

Partners & Affiliates














Developer Channel

internet.com


Featured Flash FLA
Gallery Downloads 11303 Flash Movies | 7 New Flash Movies Added
What's New | Top 100

Featured FLA

» Author: VICENTE VERGARA SILVA
» Title: JORGE ASBUN BOJALIL WEBSITE INTRO
» Description: THIS IS BRIEF A 3D INTRO MADE IN 3D MAX STUDIO FOR A PERSONAL POET WEBSITE. ENJOY.
» More by VICENTE VERGARA SILVA


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

Featured Site

» Posted in the Flash Kit Links section
» Title: 3D Jobs
» Description: Free job forum for jobs in Films, Video Games, Multimedia and jobs in flash animation and scripting.


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

» Make flash video player for broadcasting live streaming video / TV on website
» How to convert the project file of Flash Demo Builder 2.0 into FLV file
» FLV to PSP for Mac - How to convert YouTube video to PSP on mac
» How to Convert FLV to MP4 for Playback on iPod
» how to download and convert youtube video to AVI with Leawo Free FLV converter
» Flash Multi-player Game Tutorial - TicTacToe
» How to make Flash elearning tutorials with screen recorder?
» Fader API:Slideshow with MovieClips on stage
» How to convert MS PPT file into an FLV File
» Unknown Tag: Title10
Random Tutorial | Add Site

Network Design Manager
The Computer Merchant, Ltd
US-VA-Hampton

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