addition to code

admin

Administrator
Staff member
i am working on the following source code. I am 85% complete but I need to make the following change to it.
1) add another track to the program
2) modify the setUpTrack() function so it has a fourth track and then set values of the barriers and time sensors to build a totally new track configuration.

Any suggestions?
Any information is appreciated.

Monica


<html>
<head>
<title>Car Demo</title>


<!-- import the basic libraries -->
<!--
<script language="Javascript" src=http://www.webdeveloper.com/forum/archive/index.php/"../gamelib196/gamelib/gamelib_core.js">
</script>
<script language="Javascript" src="../gamelib196/gamelib/gamelib_sprites.js">
</script>
-->

<script language="Javascript" src="../gamelib20/gamelib/gamelib_core.js">
</script>
<script language="Javascript" src="../gamelib20/gamelib/gamelib_sprites.js">
</script>

<script>
var car;
var barrier = new Array();
var numSensors = 5;
var timeSensor = new Array(numSensors);
var lapStatus = new Array(numSensors);

var NORTH = 0;
var NORTHEAST = 1;
var EAST = 2;
var SOUTHEAST = 3;
var SOUTH = 4;
var SOUTHWEST = 5;
var WEST = 6;
var NORTHWEST = 7;

var direction = EAST;
var speed = 3;
var lapDone = false;
var startTime = new Date();
var trackNum = 1;
var lap = 0;


function init(){
car = new Sp_Sprite();
car.setImage("car.gif", 40, 40, 8, 1);
car.moveTo(30,40);
car.setXlimits(20, 600);
car.setYlimits(30, 400);
car.setFrame(EAST);
car.setZ(99);
car.switchOn();
car.setSpeed(3);
car.setXYdegs(EAST * 45);
car.collides = true;

//set up barriers
var barCounter = 0;
for(barCounter = 0; barCounter < 5; barCounter++){
barrier[barCounter] = new Sp_Sprite();
barrier[barCounter].setXlimits(20, 600);
barrier[barCounter].setYlimits(30, 400);
barrier[barCounter].setImage("black.gif", 20,20,1,1);
barrier[barCounter].moveTo(10,10);
barrier[barCounter].setFrame(0);
barrier[barCounter].switchOn();
barrier[barCounter].collides = true;
} // end for loop

//set up time sensors
for (tsCount = 0; tsCount < numSensors; tsCount++){
timeSensor[tsCount] = new Sp_Sprite();
timeSensor[tsCount].setImage("white.gif", 10, 10, 1, 1)
timeSensor[tsCount].setXlimits(20, 600);
timeSensor[tsCount].setYlimits(30, 400);
timeSensor[tsCount].moveTo(10,10);
timeSensor[tsCount].setFrame(0);
timeSensor[tsCount].switchOn();
timeSensor[tsCount].collides = true;
} // end for loop

Gl_hook("checkCollision()");
Gl_start();

setUpTrack();
} // end init

function setUpTrack(){

//preset for a specific track
switch(trackNum){
case 1:
// oval
barrier[0].resize(400, 200);
barrier[0].moveTo(100, 110);
barrier[1].resize(400, 200);
barrier[1].moveTo(100, 110);
barrier[2].resize(400, 200);
barrier[2].moveTo(100, 110);
barrier[3].resize(400, 200);
barrier[3].moveTo(100, 110);
barrier[4].resize(400, 200);
barrier[4].moveTo(100, 110);

timeSensor[0].resize(10, 80);
timeSensor[0].moveTo(100, 30);
timeSensor[1].resize(10, 80);
timeSensor[1].moveTo(300, 30);
timeSensor[2].resize(90, 10);
timeSensor[2].moveTo(500, 200);
timeSensor[3].resize(10, 80);
timeSensor[3].moveTo(300,310);
timeSensor[4].resize(70, 10);
timeSensor[4].moveTo(30, 200);
break;

case 2:
//curve
barrier[0].resize(10, 200);
barrier[0].moveTo(100, 100);
barrier[1].resize(400, 10);
barrier[1].moveTo(100,100);
barrier[2].resize(10, 200);
barrier[2].moveTo(500, 100);
barrier[3].resize(200, 190);
barrier[3].moveTo(200, 200);
barrier[4].resize(200, 190);
barrier[4].moveTo(200, 200);

timeSensor[0].resize(10, 70);
timeSensor[0].moveTo(100, 30);
timeSensor[1].resize(10, 70);
timeSensor[1].moveTo(500, 30);
timeSensor[2].resize(10, 90);
timeSensor[2].moveTo(500, 300);
timeSensor[3].resize(10, 90);
timeSensor[3].moveTo(300,110);
timeSensor[4].resize(10, 90);
timeSensor[4].moveTo(100, 300);
break;

case 3:
//track three (figure eight)
barrier[0].resize(100, 150);
barrier[0].moveTo(100, 150);
barrier[1].resize(10, 130);
barrier[1].moveTo(300, 30);
barrier[2].resize(100, 150);
barrier[2].moveTo(400, 150);
barrier[3].resize(10, 120);
barrier[3].moveTo(300, 270);
barrier[4].resize(10, 120);
barrier[4].moveTo(300, 270);

timeSensor[0].resize(10, 120);
timeSensor[0].moveTo(150, 30);
timeSensor[1].resize(10, 110);
timeSensor[1].moveTo(300, 160);
timeSensor[2].resize(10, 120);
timeSensor[2].moveTo(440, 30);
timeSensor[3].resize(10, 90);
timeSensor[3].moveTo(150,300);
timeSensor[4].resize(10, 90);
timeSensor[4].moveTo(440, 300);
break;
} // end switch

resetStatus();

alert("ready?");
lap = 0;
startTime = new Date();

} // end setUpTrack

function checkCollision(){
var newDir;

//check for crashes
for (barCounter = 0; barCounter < 5; barCounter++){
if (car.ha****(barrier[barCounter])){
Gl_unhook("checkCollision()");
newDir = Math.floor(Math.random() * 7);
speed = 0;
//direction = newDir;
car.setSpeed(speed);
//car.setXYdegs(direction);
//car.setFrame(direction);
} // end if
} // end for loop

//check for sensors
for (tsCount = 0; tsCount < 5; tsCount++){
if (car.ha****(timeSensor[tsCount])){
if(lapFinished()){
if (car.ha****(timeSensor[0])){
showTime();
resetStatus();
} // end'start gate' if
} //end 'finished' if
lapStatus[tsCount] = 1;
} // end ' hit sensor' if
} // end for loop

} // end checkCollision

function lapFinished(){
var finished = true;
for (counter=0; counter < numSensors; counter++){
if (lapStatus[counter] == 0){
finished = false;
} // end if
} // end loop
return finished;
} // end lapFinished

function resetStatus(){
for (tsCount = 0; tsCount < numSensors; tsCount++){
lapStatus[tsCount] = 0;
} // end for loop
} // end resetStatus

function showTime(){
//returns back the time from this lap.
var currentTime = new Date();
var currentInt = currentTime.getTime();
var startInt = startTime.getTime();
var elapsedInt = currentInt - startInt;
var elapsedTime = new Date(elapsedInt);
lap++;
var output = "";
output += elapsedTime.getMinutes() + ":";
output += elapsedTime.getSeconds() + ".";
output += elapsedTime.getMilliseconds();
window.status = output;
if (lap==1){
alert(output);
trackNum++;
if (trackNum > 3){
trackNum = 1;
} // end if
setUpTrack();
} // end if
} // end showTime


function turnLeft(){
direction--;
if (direction < NORTH){
direction = NORTHWEST;
} // end if
car.setXYdegs(direction * 45);
car.setFrame(direction);
} // end turnLeft

function turnRight(){
direction++;
if (direction > NORTHWEST){
direction = NORTH;
} // end if
car.setXYdegs(direction * 45);
car.setFrame(direction);
} // end turnLeft

function decell(){
speed--;
if (speed < 0){
speed = 0;
} // end if
car.setSpeed(speed);
} // end decell

function accell(){
Gl_hook("checkCollision()");
car.collides = true;
speed++;
if (speed > 10){
speed = 10;
} // end if
car.setSpeed(speed);
} // end accell

</script>
</head>

<body bgColor = "gray"
onload = "init()">
<IMG SRC=http://www.webdeveloper.com/forum/archive/index.php/"track.gif" WIDTH=600 HEIGHT=600 BORDER=0 USEMAP="#map">

<MAP NAME="map">
<!-- #$-:Image Map file created by GIMP Imagemap Plugin -->
<!-- #$-:GIMP Imagemap Plugin by Maurits Rijk -->
<!-- #$-:please do not edit lines starting with "#$" -->
<!-- #$VERSION:1.3 -->
<!-- #$AUTHOR:Unknown User -->
<AREA SHAPE="RECT" COORDS="351,454,371,489" HREF="javascript:accell()">
<AREA SHAPE="RECT" COORDS="227,455,247,489" HREF="javascript:decell()">
<AREA SHAPE="POLY" COORDS="303,395,325,403,342,424,344,448,335,468,317,482,307,485,301,485" HREF="javaScript:turnRight()">
<AREA SHAPE="POLY" COORDS="299,396,280,400,261,418,255,440,259,461,270,475,288,485,299,486" HREF="javascript:turnLeft()">
</MAP>
</body>
</html>:D
 
Top