SineCosine
I'm still looking for my Tangent
- Reaction score
- 77
Umm..
I tried to do this:
setInterval causes an error to pop-up on the very first try.
Am I doing something wrong?
Also, it isn't my variables that are wrong.
I'll post up the entire thing just in case, though..
I tried to do this:
Code:
//Some other function
document.body.setAttribute('onKeyPress', 'CHAR_KEY(event)');
//End of some other function
function CHAR_KEY (e) {
var ARROW_KEY;
if(window.event) {
ARROW_KEY = String.fromCharCode(e.keyCode).toUpperCase();
} else if(e.which) {
ARROW_KEY = String.fromCharCode(e.which).toUpperCase();
}
try {
if (ARROW_KEY == ARROW_UP) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_UP);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_LEFT) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_LEFT);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_DOWN) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_DOWN);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_RIGHT) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_RIGHT);', MOVE_DElAY);
}
} catch(err) {
alert(err.description);
}
}
setInterval causes an error to pop-up on the very first try.
Am I doing something wrong?
Also, it isn't my variables that are wrong.
I'll post up the entire thing just in case, though..
Code:
<html>
<head>
<title>Pump-Quest v0.1</title>
<comment>Misc Constants</comment>
<script type="text/javascript">
//globals
var TILE_DIMENSION = 32; //In pixels
var MOVE_DELAY = 31; //In milliseconds, 31milliseconds == 0.03125seconds
var MAX_X = 20;
var MAX_Y = 15;
var PIXEL_MAX_X = MAX_X * TILE_DIMENSION;
var PIXEL_MAX_Y = MAX_Y * TILE_DIMENSION;
</script>
<script type="text/javascript">
function main () {
//This is to ensure CHAR_INIT runs smoothly
CHAR_X = 3;
CHAR_Y = 4;
CHAR_F = CHAR_UP;
CHAR_INIT();
}
</script>
<comment>Map</comment>
<script type="text/javascript">
//globals
var GROUND_INDEX = 1;
var SOLID_INDEX = 2;
var AIR_INDEX = 3;
</script>
<comment>Character</comment>
<script type="text/javascript">
//globals
var CHAR_X;
var CHAR_Y;
var CHAR_F;
var CHAR_SPRITE = []; //3-D Array Facing-X-Y, Object
var CHAR_CURRENT_SPRITE;
var CHAR; //Div-Object of Char
var CHAR_MAX_FRAME = 4;
var CHAR_FRAME = CHAR_MAX_FRAME;
var CHAR_MOVE_TIMER;
var PIXEL_MOVE_PER_TICK = TILE_DIMENSION / CHAR_MAX_FRAME;
var CHAR_UP = 1;
var CHAR_LEFT = 2;
var CHAR_DOWN = 3;
var CHAR_RIGHT = 4;
var ARROW_UP = 'W';
var ARROW_LEFT = 'A';
var ARROW_DOWN = 'S';
var ARROW_RIGHT = 'D';
var NULL;
</script>
<script type="text/javascript">
function CHAR_INIT () {
CHAR_SPRITE[10*CHAR_UP + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_UP + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_12.png';
CHAR_SPRITE[10*CHAR_UP + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_UP + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_11.png';
CHAR_SPRITE[10*CHAR_UP + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_UP + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_10.png';
CHAR_SPRITE[10*CHAR_UP + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_UP + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_11.png';
CHAR_SPRITE[10*CHAR_LEFT + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_LEFT + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_03.png';
CHAR_SPRITE[10*CHAR_LEFT + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_LEFT + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_02.png';
CHAR_SPRITE[10*CHAR_LEFT + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_LEFT + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_01.png';
CHAR_SPRITE[10*CHAR_LEFT + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_LEFT + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_02.png';
CHAR_SPRITE[10*CHAR_DOWN + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_DOWN + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_06.png';
CHAR_SPRITE[10*CHAR_DOWN + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_DOWN + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_05.png';
CHAR_SPRITE[10*CHAR_DOWN + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_DOWN + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_04.png';
CHAR_SPRITE[10*CHAR_DOWN + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_DOWN + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_05.png';
CHAR_SPRITE[10*CHAR_RIGHT + 1] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_RIGHT + 1].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_09.png';
CHAR_SPRITE[10*CHAR_RIGHT + 2] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_RIGHT + 2].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_08.png';
CHAR_SPRITE[10*CHAR_RIGHT + 3] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_RIGHT + 3].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_07.png';
CHAR_SPRITE[10*CHAR_RIGHT + 4] = new Image(TILE_DIMENSION, TILE_DIMENSION);
CHAR_SPRITE[10*CHAR_RIGHT + 4].src = 'http://i147.photobucket.com/albums/r291/luciusxx/Hero/Hero_08.png';
CHAR = document.createElement('div');
CHAR.style.position = 'absolute';
CHAR.style.width = TILE_DIMENSION;
CHAR.style.height = TILE_DIMENSION;
CHAR.style.top = PIXEL_MAX_Y - (CHAR_Y * TILE_DIMENSION);
CHAR.style.left = CHAR_X * TILE_DIMENSION;
CHAR.style.zIndex = SOLID_INDEX;
CHAR_CURRENT_SPRITE = CHAR_SPRITE[10*CHAR_F + 4];
CHAR.appendChild(CHAR_CURRENT_SPRITE);
document.body.appendChild(CHAR);
document.body.setAttribute('onkeypress', 'CHAR_KEY(event)');
}
function CHAR_MOVE(Direction) {
if (CHAR_FRAME == CHAR_MAX_FRAME) {
if (Direction == ARROW_UP) {
CHAR_Y = CHAR_Y + 1;
} else if (Direction == ARROW_LEFT) {
CHAR_X = CHAR_X - 1;
} else if (Direction == ARROW_DOWN) {
CHAR_Y = CHAR_Y - 1;
} else if (Direction == ARROW_RIGHT) {
CHAR_X = CHAR_X + 1;
}
}
if (CHAR_FRAME != 0) {
if (Direction == ARROW_UP) {
CHAR.style.top = parseInt(CHAR.style.top) - PIXEL_MOVE_PER_TICK;
} else if (Direction == ARROW_LEFT) {
CHAR.style.left = parseInt(CHAR.style.left) - PIXEL_MOVE_PER_TICK;
} else if (Direction == ARROW_DOWN) {
CHAR.style.top = parseInt(CHAR.style.top) + PIXEL_MOVE_PER_TICK;
} else if (Direction == ARROW_RIGHT) {
CHAR.style.left = parseInt(CHAR.style.left) + PIXEL_MOVE_PER_TICK;
}
CHAR_FRAME = CHAR_FRAME - 1;
}
if (CHAR_FRAME == 0) {
CHAR.style.top = PIXEL_MAX_Y - (CHAR_Y * TILE_DIMENSION);
CHAR.style.left = CHAR_X * TILE_DIMENSION;
CHAR_FRAME = CHAR_MAX_FRAME;
clearInterval(CHAR_MOVE_TIMER);
CHAR_MOVE_TIMER = NULL;
document.body.setAttribute('onKeyPress', 'CHAR_KEY(event)');
}
}
function CHAR_KEY (e) {
var ARROW_KEY;
if(window.event) {
ARROW_KEY = String.fromCharCode(e.keyCode).toUpperCase();
} else if(e.which) {
ARROW_KEY = String.fromCharCode(e.which).toUpperCase();
}
try {
if (ARROW_KEY == ARROW_UP) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_UP);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_LEFT) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_LEFT);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_DOWN) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_DOWN);', MOVE_DElAY);
} else if (ARROW_KEY == ARROW_RIGHT) {
document.body.setAttribute('onKeyPress', '');
CHAR_MOVE_TIMER = setInterval('CHAR_MOVE(ARROW_RIGHT);', MOVE_DElAY);
}
} catch(err) {
alert(err.description);
}
}
</script>
<comment>NPC</comment>
<comment>Menu</comment>
</head>
<body onload="main()">
</body>
</html>