mirror of https://github.com/espruino/BangleApps
Update app.js
parent
9aad505bdd
commit
156ae5cbb3
|
@ -22,6 +22,10 @@ var PurpleCar = require("heatshrink").decompress(atob("ol74UBitg///BIP/7lVqtUDJU
|
|||
|
||||
var LightGreenCar = require("heatshrink").decompress(atob("ol74UBocF///BIP1z9VqtUDJUVBwIABq2qABOVCCkolQJC0AwDgWolAQD1EqwBCH0EqCCdKxQuEAAkKwGhCH4Q/CGD7ECDINEAAoQIwBACgQQYwQ+EAAcC1EACAeAlQfDAAheBCG2oCBUCCB8qCCiQBdp3+fxW/CH4Q/CH4QxgQQKwAQD1QQK1QQUmQQKxiH/CBGqCB3/5WACA+j/4Qf14QxKjGqRI0CCAv+x4QBEYcC1Wo/SpFCBtUlQQBBgISBAAQGBCAOo6te1QQB///lQPC1AGBCAOqyoQQlAuBCAXPAQIAD/Q2BlGoCAgAGCAUqCBnyCAVS1WrB5AAB9RUDCB1WCB0VVIIQMXQYQ/CAbFBBw/8BQIQFn4QewDNBCQgOCgEACDADBAAMC1T5BCAwABCQIACA4QQZABAQ/CH4Q/CH4QC1APKhQQPlQQUxWgGJOCCAcCCBWACAmqGhAQFwEqCA8qFYIQTuWohWqAAIQE1WghUFCANVD4JFBAAqzBlQPCCCNyHIIQGMoONCAdWQ5WVCCjNJZIYQM1WtCAt6KYwAB0oQFIoIPGIIoQTqhDG6oMDA"));
|
||||
|
||||
function consoleDebug(message) {
|
||||
//console.log(message);
|
||||
}
|
||||
|
||||
function getRandomInt(min, max) {
|
||||
min = Math.ceil(min);
|
||||
max = Math.floor(max);
|
||||
|
@ -30,21 +34,55 @@ function getRandomInt(min, max) {
|
|||
|
||||
function moveEnemyPosition(){
|
||||
score += 1;
|
||||
checkForNextLevel();
|
||||
if(level == 1){
|
||||
randomRoadPositionIndicator = getRandomInt(1, 4);
|
||||
if ((randomRoadPositionIndicator == 1)) {
|
||||
randomRoadPosition = 85;
|
||||
enemyPositonCenterX = 85;
|
||||
}else if((randomRoadPositionIndicator == 2)){
|
||||
randomRoadPosition = 120;
|
||||
enemyPositonCenterX = 120;
|
||||
}else {
|
||||
randomRoadPosition = 155;
|
||||
enemyPositonCenterX = 155;
|
||||
}
|
||||
}else if(level == 2||level==3){
|
||||
enemyPositonCenterX = getRandomInt(85, 155);
|
||||
}else if(level == 4 || level == 5 || level == 6 || level == 8 || level == 9 || level == 10 || level > 10){
|
||||
do{
|
||||
randomRoadPositionIndicator = getRandomInt(1, 4);
|
||||
randomRoadPositionIndicator2 = getRandomInt(1, 4);
|
||||
}while(randomRoadPositionIndicator==randomRoadPositionIndicator2);
|
||||
|
||||
if ((randomRoadPositionIndicator == 1)) {
|
||||
enemyPositonCenterX = 85;
|
||||
}else if((randomRoadPositionIndicator == 2)){
|
||||
enemyPositonCenterX = 120;
|
||||
}else if((randomRoadPositionIndicator == 3)){
|
||||
enemyPositonCenterX = 155;
|
||||
}
|
||||
|
||||
if ((randomRoadPositionIndicator2 == 1)) {
|
||||
enemyPositonCenterX2 = 85;
|
||||
}else if((randomRoadPositionIndicator2 == 2)){
|
||||
enemyPositonCenterX2 = 120;
|
||||
}else if((randomRoadPositionIndicator2 == 3)){
|
||||
enemyPositonCenterX2 = 155;
|
||||
}else if(level == 7||level == 8){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function collision(){
|
||||
if(gameStatus == GAMEPLAYING){
|
||||
consoleDebug("Px:"+playerCarLeftX+", "+playerCarRightX);
|
||||
consoleDebug("1x:"+enemyCarLeftX+", "+enemyCarRightX);
|
||||
consoleDebug("2x:"+enemyCarLeftX2+", "+enemyCarRightX2);
|
||||
consoleDebug("Py:"+playerCarFrontY);
|
||||
consoleDebug("1y:"+enemyCarFrontY);
|
||||
consoleDebug("2y:"+enemyCarFrontY2);
|
||||
if
|
||||
(
|
||||
(enemyCarFrontY > playerCarFrontY)
|
||||
(enemyCarFrontY < 300 && enemyCarFrontY > playerCarFrontY)
|
||||
&&
|
||||
(
|
||||
(enemyCarLeftX > playerCarLeftX && enemyCarLeftX < playerCarRightX)
|
||||
|
@ -52,51 +90,105 @@ function collision(){
|
|||
(enemyCarRightX > playerCarLeftX && enemyCarRightX < playerCarRightX)
|
||||
)
|
||||
){
|
||||
// hit
|
||||
setTimeout(collision, 2500); // wait 2.5 second for the function to actiavte agian.
|
||||
// hit car 1
|
||||
consoleDebug("1 HIT");
|
||||
enemyPositonCenterY = 300;
|
||||
numberofHearts -= 1;
|
||||
score -= 1;
|
||||
Bangle.buzz();
|
||||
}else{
|
||||
// miss
|
||||
setTimeout(collision, 1); // try again in 1 milliseconds.
|
||||
Bangle.buzz(50,50);
|
||||
}else if
|
||||
(
|
||||
(enemyCarFrontY2 < 300 && enemyCarFrontY2 > playerCarFrontY)
|
||||
&&
|
||||
(
|
||||
(enemyCarLeftX2 > playerCarLeftX && enemyCarLeftX2 < playerCarRightX)
|
||||
||
|
||||
(enemyCarRightX2 > playerCarLeftX && enemyCarRightX2 < playerCarRightX)
|
||||
)
|
||||
){
|
||||
// hit car 2
|
||||
consoleDebug("2 HIT");
|
||||
enemyPositonCenterY2 = 300;
|
||||
numberofHearts -= 1;
|
||||
Bangle.buzz(50,50);
|
||||
}
|
||||
setTimeout(collision, 50); // try again in 50 milliseconds.
|
||||
}
|
||||
}
|
||||
|
||||
function storeMyData(data) {
|
||||
// ensure there are less than 500 elements in the array
|
||||
while (log.length >= 500) log.shift();
|
||||
// append a new item to the array
|
||||
log.push(data);
|
||||
function checkForNextLevel(){
|
||||
if(score < 10){
|
||||
level = 1;
|
||||
}else if(score >= 10 && score < 20){
|
||||
level = 2;
|
||||
}else if(score >= 20 && score < 30){
|
||||
level = 3;
|
||||
}else if(score >= 30 && score < 40){
|
||||
level = 4;
|
||||
}else if(score >= 40 && score < 50){
|
||||
level = 5;
|
||||
}else if(score >= 50 && score < 60){
|
||||
level = 6;
|
||||
}else if(score >= 60 && score < 70){
|
||||
level = 7;
|
||||
}else if(score >= 70 && score < 80){
|
||||
level = 8;
|
||||
}else if(score >= 80 && score < 90){
|
||||
level = 9;
|
||||
}else if(score >= 90){
|
||||
level = 10;
|
||||
}
|
||||
}
|
||||
|
||||
var accel = Bangle.getAccel();
|
||||
|
||||
var file = require("Storage").open("CarCrazy.csv","r");
|
||||
var currentHighScore = file.readLine();
|
||||
if (currentHighScore == undefined) currentHighScore = 0;
|
||||
|
||||
var BackgroundStartingPosition = 75;
|
||||
var carScale = 0.5;
|
||||
var accel = Bangle.getAccel();
|
||||
var playerCarPosition = 120-accel.x*40;
|
||||
var BackgroundYPosition = BackgroundStartingPosition;
|
||||
var randomRoadPositionIndicator = getRandomInt(1, 3);
|
||||
var randomRoadPosition = 120;
|
||||
var enemyPositonY = 30;
|
||||
|
||||
var randomRoadPositionIndicator;
|
||||
var randomRoadPositionIndicator2;
|
||||
var enemyPositonCenterX;
|
||||
var enemyPositonCenterX2;
|
||||
|
||||
var carScale = 0.5;
|
||||
var carWidth = 30;
|
||||
var carHeight = 60;
|
||||
var playerCarY = 130;
|
||||
var enemyCarLeftX;
|
||||
var enemyCarRightX;
|
||||
|
||||
var playerCarCenterY = 130;
|
||||
var playerCarCenterX;
|
||||
|
||||
var enemyPositonCenterY = 0 - carHeight/2;
|
||||
var enemyPositonCenterY2 = 0 - carHeight/2;
|
||||
|
||||
var playerCarLeftX;
|
||||
var playerCarRightX;
|
||||
var enemyCarFrontY;
|
||||
var playerCarFrontY;
|
||||
|
||||
var playerCarFrontY;
|
||||
var playerCarBackY;
|
||||
var playerCarLeftX;
|
||||
var playerCarRightX;
|
||||
|
||||
var enemyCarFrontY;
|
||||
var enemyCarBackY;
|
||||
var enemyCarLeftX;
|
||||
var enemyCarRightX;
|
||||
|
||||
var enemyCarFrontY2;
|
||||
var enemyCarBackY2;
|
||||
var enemyCarLeftX2;
|
||||
var enemyCarRightX2;
|
||||
|
||||
var GAMEPLAYING = 1;
|
||||
var GAMEOVER = 2;
|
||||
var GAMESTART = 3;
|
||||
var gameStatus = GAMESTART;
|
||||
var score = 0;
|
||||
var level = 1;
|
||||
|
||||
|
||||
moveEnemyPosition();
|
||||
collision();
|
||||
|
@ -114,11 +206,16 @@ function draw(){
|
|||
if(gameStatus == GAMEPLAYING){
|
||||
BackgroundYPosition += 10;
|
||||
accel = Bangle.getAccel();
|
||||
playerCarPosition = 120-accel.x*40;
|
||||
playerCarCenterX = Math.round(120-accel.x*120);
|
||||
if (playerCarCenterX > 170) { playerCarCenterX = 170; }
|
||||
if (playerCarCenterX < 70) { playerCarCenterX = 70; }
|
||||
g.flip();
|
||||
g.drawImage(backgroundImage,125,BackgroundYPosition, {scale:13,rotate:0});
|
||||
g.drawImage(RedCar,playerCarPosition,playerCarY, {scale:carScale,rotate:3.142});
|
||||
g.drawImage(OrangeCar,randomRoadPosition,enemyPositonY, {scale:carScale,rotate:0});
|
||||
g.drawImage(RedCar,playerCarCenterX,playerCarCenterY, {scale:carScale,rotate:3.142});
|
||||
g.drawImage(OrangeCar,enemyPositonCenterX,enemyPositonCenterY, {scale:carScale,rotate:0});
|
||||
if(level>=4){
|
||||
g.drawImage(OrangeCar,enemyPositonCenterX2,enemyPositonCenterY2, {scale:carScale,rotate:0});
|
||||
}
|
||||
|
||||
if(numberofHearts==3){
|
||||
g.drawImage(heartImage,10,10, {scale:2,rotate:0});
|
||||
|
@ -141,23 +238,38 @@ function draw(){
|
|||
}
|
||||
}
|
||||
|
||||
playerCarFrontY = playerCarY-carHeight/2;
|
||||
playerCarBackY = playerCarY+carHeight/2;
|
||||
playerCarLeftX = playerCarPosition-carWidth/2;
|
||||
playerCarRightX = playerCarPosition+carWidth/2;
|
||||
playerCarFrontY = playerCarCenterY-carHeight/2;
|
||||
playerCarBackY = playerCarCenterY+carHeight/2;
|
||||
playerCarLeftX = playerCarCenterX-carWidth/2;
|
||||
playerCarRightX = playerCarCenterX+carWidth/2;
|
||||
|
||||
enemyCarFrontY = enemyPositonY+carHeight/2;
|
||||
enemyCarBackY = enemyPositonY-carHeight/2;
|
||||
enemyCarLeftX = randomRoadPosition-carWidth/2;
|
||||
enemyCarRightX = randomRoadPosition+carWidth/2;
|
||||
enemyCarFrontY = enemyPositonCenterY+carHeight/2;
|
||||
enemyCarBackY = enemyPositonCenterY-carHeight/2;
|
||||
enemyCarLeftX = enemyPositonCenterX-carWidth/2;
|
||||
enemyCarRightX = enemyPositonCenterX+carWidth/2;
|
||||
|
||||
enemyCarFrontY2 = enemyPositonCenterY2+carHeight/2;
|
||||
enemyCarBackY2 = enemyPositonCenterY2-carHeight/2;
|
||||
enemyCarLeftX2 = enemyPositonCenterX2-carWidth/2;
|
||||
enemyCarRightX2 = enemyPositonCenterX2+carWidth/2;
|
||||
|
||||
g.setColor(255,0,0);
|
||||
//g.drawRect(playerCarLeftX, playerCarFrontY, playerCarRightX, playerCarBackY);
|
||||
//g.drawRect(enemyCarLeftX, enemyCarFrontY, enemyCarRightX, enemyCarBackY);
|
||||
//g.drawRect(enemyCarLeftX2, enemyCarFrontY2, enemyCarRightX2, enemyCarBackY2);
|
||||
|
||||
g.setColor(0,0,0);
|
||||
g.drawString("Score: "+score,180,5);
|
||||
g.drawString("HighScore:",178,15);
|
||||
g.drawString(currentHighScore,205,25);
|
||||
g.drawString("Level: "+level,180,150);
|
||||
|
||||
//g.drawString("P:"+playerCarLeftX+", "+playerCarRightX,180,90);
|
||||
//g.drawString("1:"+enemyCarLeftX+", "+enemyCarRightX,180,100);
|
||||
//g.drawString("2:"+enemyCarLeftX2+", "+enemyCarRightX2,180,110);
|
||||
//g.drawString("P:"+playerCarFrontY,180,120);
|
||||
//g.drawString("1:"+enemyCarFrontY,180,130);
|
||||
//g.drawString("2:"+enemyCarFrontY2,180,140);
|
||||
|
||||
if(BackgroundYPosition > 170){
|
||||
BackgroundYPosition = BackgroundStartingPosition;
|
||||
|
@ -200,41 +312,75 @@ function draw(){
|
|||
g.drawString("2 To Start",10,130);
|
||||
g.drawImage(LightGreenCar,180,115, {scale:0.5,rotate:3});
|
||||
g.drawImage(PurpleCar,215,115, {scale:0.5,rotate:3});
|
||||
//setTimeout(displayPopup, 3000);
|
||||
}
|
||||
}
|
||||
setInterval(draw ,10);
|
||||
setInterval(draw, 50);
|
||||
|
||||
|
||||
function moveEnemyCar(){
|
||||
if(gameStatus == GAMEPLAYING){
|
||||
enemyPositonY = enemyPositonY + 10;
|
||||
if((enemyPositonY > 200)){
|
||||
enemyPositonY = 30;
|
||||
if(level==1||level==2){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 10;
|
||||
enemyPositonCenterY2 = 0;
|
||||
}else if(level==3){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 12;
|
||||
enemyPositonCenterY2 = 0;
|
||||
}else if(level==4){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 8;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 8;
|
||||
}else if(level==5){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 9;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 9;
|
||||
}else if(level==6){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 9.5;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 8;
|
||||
}else if(level==7){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 10;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 8;
|
||||
}else if(level==8){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 11.5;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 11.5;
|
||||
}else if(level>=9){
|
||||
enemyPositonCenterY = enemyPositonCenterY + 13;
|
||||
enemyPositonCenterY2 = enemyPositonCenterY2 + 14;
|
||||
}
|
||||
if(enemyPositonCenterY > 200){
|
||||
enemyPositonCenterY = 300;
|
||||
}
|
||||
if(enemyPositonCenterY2 > 200){
|
||||
enemyPositonCenterY2 = 300;
|
||||
}
|
||||
if(enemyPositonCenterY > 200 && (enemyPositonCenterY2 > 200 || level < 4)){
|
||||
enemyPositonCenterY = 0 - carHeight/2;
|
||||
if (level >= 4) { enemyPositonCenterY2 = 0 - carHeight/2; }
|
||||
moveEnemyPosition();
|
||||
}
|
||||
}
|
||||
}
|
||||
setInterval(moveEnemyCar,10);
|
||||
setInterval(moveEnemyCar,50);
|
||||
|
||||
setWatch(() => {
|
||||
if(gameStatus == GAMESTART){
|
||||
gameStatus = GAMEPLAYING;
|
||||
collision();
|
||||
enemyPositonY = 0;
|
||||
score = 0;
|
||||
numberofHearts = 3;
|
||||
enemyPositonCenterX = 120;
|
||||
enemyPositonCenterY = 0 - carHeight/2;
|
||||
enemyPositonCenterX2 = 120;
|
||||
enemyPositonCenterY2 = 0 - carHeight/2;
|
||||
score = 100;
|
||||
level = 1;
|
||||
checkForNextLevel();
|
||||
}else if(gameStatus == GAMEOVER){
|
||||
gameStatus = GAMEPLAYING;
|
||||
collision();
|
||||
enemyPositonY = 0;
|
||||
enemyPositonCenterX = 120;
|
||||
enemyPositonCenterY = 0 - carHeight/2;
|
||||
enemyPositonCenterX2 = 120;
|
||||
enemyPositonCenterY2 = 0 - carHeight/2;
|
||||
numberofHearts = 3;
|
||||
score = 0;
|
||||
level = 1;
|
||||
checkForNextLevel();
|
||||
}
|
||||
}, BTN2, {repeat:true});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue