im staring into tile based coding and im trying to make a 8x8 grid with 3 kinds of terrain
0 = empty
1 = blocked
2 = swamp
now i have this code
[AS]
speed = 4;
function walk (dir) {
// check dir
if ( dir == null ) {
return;
}
// where are our edges?
var downY = Math.floor( ( _y + (_height/2) ) /_parent.tileH );
var upY = Math.floor( ( _y - (_height/2) ) /_parent.tileH );
var leftX = Math.floor( ( _x - (_width/2) ) /_parent.tileW );
var rightX = Math.floor( ( _x + (_width/2) ) / _parent.tileW );
var centerX = Math.floor( _x / _parent.tileW );
var centerY = Math.floor( _y / _parent.tileH );
if ( dir == "up" && _parent.myMap[upY][centerX] == 2 ) {
speed = 2
} else {
speed = 4
}
if ( dir == "down" && _parent.myMap[downY][centerX] == 2 ) {
speed = 2
} else {
speed = 4
}
if ( dir == "left" && _parent.myMap[centerY][leftX] == 2 ) {
speed = 2
} else {
speed = 4
}
if ( dir == "right" && _parent.myMap[centerY][rightX] == 2 ) {
speed = 2
} else {
speed = 4
}
if ( dir == "up" && _parent.myMap[upY][centerX] != 1 ) {
_y -= speed;
}
if ( dir == "down" && _parent.myMap[downY][centerX] != 1 ) {
_y += speed;
}
if ( dir == "left" && _parent.myMap[centerY][leftX] != 1 ) {
_x -= speed;
}
if ( dir == "right" && _parent.myMap[centerY][rightX] != 1 ) {
_x += speed;
}
}
[/AS]
which, if i right reduce speed t 2 if going through swamp and increase to 4 if not, but it will only work if i go right (this is not all my script but its all thats important.)
can any one help me?