Skip to content

Commit 9e736e6

Browse files
authored
Merge pull request #44 from marcins1/master
Poprawki
2 parents b39c54c + e7f6c85 commit 9e736e6

File tree

2 files changed

+142
-102
lines changed

2 files changed

+142
-102
lines changed

js/app_p5.js

+141-101
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ direction[0] = true;
7373
//Bullets size
7474
var bsize = 12;
7575
//Max number of bullets
76-
var bmax = 10;
76+
var bmax = 15;
7777
//Bullets speed
7878
var bspeed = 12;
7979
//Bullets life in seconds
80-
var blife = 5;
80+
var blife = 2.1;
8181

8282
var bullets = [];
8383
//bullets[][*]
@@ -149,6 +149,8 @@ for (i = 0; i < bmax; i++) {
149149
bullets[i][5] = false;
150150
}
151151

152+
var bulletsCounter = -1;
153+
152154
//Enemy size
153155
var esize = 60;
154156

@@ -164,8 +166,12 @@ var tcounter = 0;
164166
var maxtime = minutes * 60 + seconds;
165167

166168
//Number of shot
167-
var noshot = 0;
168-
var score = [];
169+
var noshot = 1;
170+
var score = 0;
171+
var points = 0;
172+
var points2 = 0;
173+
var currentscore = 0;
174+
var generalscore = 0;
169175

170176
var drawingenemies = [];
171177
for (var n = 0; n < 4; n++) drawingenemies[n] = [];
@@ -387,8 +393,8 @@ function stageCompleted() {
387393
textSize(50);
388394
fill('#000000');
389395
text("Congratulations!!!", 500, 100);
390-
text("Your score:", 575, 175);
391-
text(score, 640, 250);
396+
text("Your current score:", 490, 175);
397+
text(generalscore, 640, 250);
392398
text("Level " + (stageid + 1) + " Completed", 500, 400);
393399
text("Press SPACE to Continue", 500, 700);
394400
fill('#FFFFFF');
@@ -567,6 +573,7 @@ function physics() {
567573
checkIfUnderScreen();
568574
checkEnemyPos();
569575
activeEnemies();
576+
activeBullets();
570577

571578
console.log(enemiesCounter);
572579

@@ -577,8 +584,8 @@ function physics() {
577584
}
578585

579586
function bulletsCollision() {
580-
for (i = 0; i < maxp[stageid]; i++) {
581-
for (j = 0; j < bmax; j++) {
587+
for (h = 0; h < maxp[stageid]; h++) {
588+
for (j = 0; j <= bulletsCounter; j++) {
582589
if (bullets[j][5]) {
583590
if (bullets[j][1] <= platforms[stageid][i][1] + platforms[stageid][i][3] + bullets[j][2] * 0.75 && bullets[j][1] >= platforms[stageid][i][1] - bullets[j][2] * 0.75) {
584591
if (bullets[j][0] >= platforms[stageid][i][0] - bullets[j][2] * 0.75 && bullets[j][0] <= platforms[stageid][i][0] + platforms[stageid][i][2] + bullets[j][2] * 0.75) {
@@ -614,7 +621,7 @@ function gravity(maxy, maxid) {
614621
} else {
615622
if (maxid === maxp[stageid] - 1) {
616623
completed = true;
617-
countPoints();
624+
countPoints(1);
618625
}
619626
}
620627
}
@@ -665,103 +672,132 @@ function movex(vector) {
665672
}
666673

667674
function drawBullets() {
668-
for (i = 0; i < bmax; i++) {
669-
if (bullets[i][5]) {
670-
if (bullets[i][3] === 0) {
675+
for (i = 0; i <= bulletsCounter; i++) {
676+
switch (bullets[i][3]) {
677+
case 0:
671678
bullets[i][0] += bspeed;
672679
bullets[i][1] -= bspeed;
673-
} else if (bullets[i][3] === 1) {
680+
break;
681+
case 1:
674682
bullets[i][0] += bspeed;
675683
bullets[i][1] += bspeed;
676-
} else if (bullets[i][3] === 2) {
684+
break;
685+
case 2:
677686
bullets[i][0] -= bspeed;
678687
bullets[i][1] -= bspeed;
679-
} else if (bullets[i][3] === 3) {
688+
break;
689+
case 3:
680690
bullets[i][0] -= bspeed;
681691
bullets[i][1] += bspeed;
682-
} else if (bullets[i][3] === 4) {
692+
break;
693+
case 4:
683694
bullets[i][0] += bspeed;
684-
} else if (bullets[i][3] === 5) {
695+
break;
696+
case 5:
685697
bullets[i][0] -= bspeed;
686-
} else if (bullets[i][3] === 6) {
698+
break;
699+
case 6:
687700
bullets[i][0] -= bullets[i][7];
688701
bullets[i][1] -= bullets[i][8];
689-
} else if (bullets[i][3] === 7) {
702+
break;
703+
case 7:
690704
bullets[i][0] -= bullets[i][7];
691705
bullets[i][1] += bullets[i][8];
692-
} else if (bullets[i][3] === 8) {
706+
break;
707+
case 8:
693708
bullets[i][0] += bullets[i][7];
694709
bullets[i][1] -= bullets[i][8];
695-
} else if (bullets[i][3] === 9) {
710+
break;
711+
case 9:
696712
bullets[i][0] += bullets[i][7];
697713
bullets[i][1] += bullets[i][8];
698-
}
699-
if (bullets[i][6] === false) fill('white');
700-
else fill('red');
701-
ellipse(bullets[i][0] - spos, bullets[i][1], bullets[i][2], bullets[i][2]);
702-
fill('white');
703-
704-
bullets[i][4]++;
705-
if (bullets[i][4] === 60 * blife) {
706-
bullets[i][5] = false;
707-
}
714+
break;
715+
}
716+
if (bullets[i][6] === false) fill('white');
717+
else fill('red');
718+
ellipse(bullets[i][0] - spos, bullets[i][1], bullets[i][2], bullets[i][2]);
719+
fill('white');
720+
721+
bullets[i][4]++;
722+
if (bullets[i][4] === 60 * blife) {
723+
bullets[i][5] = false;
708724
}
709725
}
710726
}
711727

712728
function newBullet(enumber) {
713-
for (i = 0; i < bmax; i++) {
714-
if (!bullets[i][5]) {
715-
if (enumber === -1) {
716-
noshot++;
717-
bullets[i][2] = bsize;
718-
if (direction[0] && direction[2]) {
719-
bullets[i][0] = spos + px + sx;
720-
bullets[i][1] = py + 10;
721-
bullets[i][3] = 0;
722-
} else if (direction[0] && direction[3]) {
723-
bullets[i][0] = spos + px + sx - 3;
724-
bullets[i][1] = py + 45;
725-
bullets[i][3] = 1;
726-
} else if (direction[1] && direction[2]) {
727-
bullets[i][0] = spos + px;
728-
bullets[i][1] = py + 10;
729-
bullets[i][3] = 2;
730-
} else if (direction[1] && direction[3]) {
731-
bullets[i][0] = spos + px + 3;
732-
bullets[i][1] = py + 45;
733-
bullets[i][3] = 3;
734-
} else if (direction[0]) {
735-
bullets[i][0] = spos + px + sx + 10;
736-
bullets[i][1] = py + 25;
737-
bullets[i][3] = 4;
738-
} else if (direction[1]) {
739-
bullets[i][0] = spos + px - 10;
740-
bullets[i][1] = py + 25;
741-
bullets[i][3] = 5;
729+
if (bulletsCounter < bmax - 1) {
730+
bulletsCounter++;
731+
if (enumber === -1) {
732+
noshot++;
733+
bullets[bulletsCounter][2] = bsize;
734+
if (direction[0] && direction[2]) {
735+
bullets[bulletsCounter][0] = spos + px + sx;
736+
bullets[bulletsCounter][1] = py + 10;
737+
bullets[bulletsCounter][3] = 0;
738+
} else if (direction[0] && direction[3]) {
739+
bullets[bulletsCounter][0] = spos + px + sx - 3;
740+
bullets[bulletsCounter][1] = py + 45;
741+
bullets[bulletsCounter][3] = 1;
742+
} else if (direction[1] && direction[2]) {
743+
bullets[bulletsCounter][0] = spos + px;
744+
bullets[bulletsCounter][1] = py + 10;
745+
bullets[bulletsCounter][3] = 2;
746+
} else if (direction[1] && direction[3]) {
747+
bullets[bulletsCounter][0] = spos + px + 3;
748+
bullets[bulletsCounter][1] = py + 45;
749+
bullets[bulletsCounter][3] = 3;
750+
} else if (direction[0]) {
751+
bullets[bulletsCounter][0] = spos + px + sx + 10;
752+
bullets[bulletsCounter][1] = py + 25;
753+
bullets[bulletsCounter][3] = 4;
754+
} else if (direction[1]) {
755+
bullets[bulletsCounter][0] = spos + px - 10;
756+
bullets[bulletsCounter][1] = py + 25;
757+
bullets[bulletsCounter][3] = 5;
758+
}
759+
bullets[bulletsCounter][6] = false;
760+
} else {
761+
var a = drawingenemies[enumber][0] + (esize / 2) - px - spos;
762+
var b = drawingenemies[enumber][1] - py;
763+
var c = Math.pow(a, 2) + Math.pow(b, 2);
764+
var d = c / bspeed;
765+
bullets[bulletsCounter][7] = Math.sqrt(Math.pow(a, 2) / d) * 3;
766+
bullets[bulletsCounter][8] = Math.sqrt(Math.pow(b, 2) / d) * 3;
767+
768+
if (drawingenemies[enumber][0] + (esize / 2) - px - spos > 0 && drawingenemies[enumber][1] - py > 0) bullets[bulletsCounter][3] = 6;
769+
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos > 0 && drawingenemies[enumber][1] - py <= 0) bullets[bulletsCounter][3] = 7;
770+
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos <= 0 && drawingenemies[enumber][1] - py > 0) bullets[bulletsCounter][3] = 8;
771+
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos <= 0 && drawingenemies[enumber][1] - py <= 0) bullets[bulletsCounter][3] = 9;
772+
773+
bullets[bulletsCounter][0] = drawingenemies[enumber][0] + (esize / 2);
774+
bullets[bulletsCounter][1] = drawingenemies[enumber][1];
775+
bullets[bulletsCounter][2] = bsize;
776+
bullets[bulletsCounter][6] = true;
777+
}
778+
bullets[bulletsCounter][4] = 0;
779+
bullets[bulletsCounter][5] = true;
780+
}
781+
}
782+
783+
function activeBullets() {
784+
if (bulletsCounter >= 0) {
785+
for (p = 0; p <= bulletsCounter; p++) {
786+
if (!bullets[p][5]) {
787+
if (bulletsCounter === 0) bulletsCounter--;
788+
else {
789+
bullets[p][0] = bullets[bulletsCounter][0];
790+
bullets[p][1] = bullets[bulletsCounter][1];
791+
bullets[p][2] = bullets[bulletsCounter][2];
792+
bullets[p][3] = bullets[bulletsCounter][3];
793+
bullets[p][4] = bullets[bulletsCounter][4];
794+
bullets[p][5] = bullets[bulletsCounter][5];
795+
bullets[p][6] = bullets[bulletsCounter][6];
796+
bullets[p][7] = bullets[bulletsCounter][7];
797+
bullets[p][8] = bullets[bulletsCounter][8];
798+
bulletsCounter--;
742799
}
743-
bullets[i][6] = false;
744-
} else {
745-
var a = drawingenemies[enumber][0] + (esize / 2) - px - spos;
746-
var b = drawingenemies[enumber][1] - py;
747-
var c = Math.pow(a, 2) + Math.pow(b, 2);
748-
var d = c / bspeed;
749-
bullets[i][7] = Math.sqrt(Math.pow(a, 2) / d) * 3;
750-
bullets[i][8] = Math.sqrt(Math.pow(b, 2) / d) * 3;
751-
752-
if (drawingenemies[enumber][0] + (esize / 2) - px - spos > 0 && drawingenemies[enumber][1] - py > 0) bullets[i][3] = 6;
753-
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos > 0 && drawingenemies[enumber][1] - py <= 0) bullets[i][3] = 7;
754-
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos <= 0 && drawingenemies[enumber][1] - py > 0) bullets[i][3] = 8;
755-
else if (drawingenemies[enumber][0] + (esize / 2) - px - spos <= 0 && drawingenemies[enumber][1] - py <= 0) bullets[i][3] = 9;
756-
757-
bullets[i][0] = drawingenemies[enumber][0] + (esize / 2);
758-
bullets[i][1] = drawingenemies[enumber][1];
759-
bullets[i][2] = bsize;
760-
bullets[i][6] = true;
761800
}
762-
bullets[i][4] = 0;
763-
bullets[i][5] = true;
764-
break;
765801
}
766802
}
767803
}
@@ -808,19 +844,18 @@ function restartGame() {
808844
default:
809845
}
810846
}
811-
for (j = 0; j < bmax; j++) bullets[j][5] = 0;
847+
for (j = 0; j <= bulletsCounter; j++) bullets[j][5] = 0;
848+
bulletsCounter = -1;
812849
seconds = 0;
813850
minutes = 3;
814-
score[stageid] = 0;
815-
noshot = 0;
851+
score = 0;
852+
noshot = 1;
816853
lastp = getLastPlatform();
817854
sstart = 0;
818-
819855
for (p = 0; p <= enemiesCounter; p++) {
820856
enemies[stageid][drawingenemies[p][2]][8] = false;
821-
}
822-
enemiesCounter = -1;
823-
857+
}
858+
enemiesCounter = -1;
824859
}
825860

826861
function checkEnemyPos() {
@@ -849,8 +884,6 @@ function createNewEnemy(x, y, id) {
849884
function drawEnemies() {
850885
for (i = 0; i <= enemiesCounter; i++) {
851886
var k = 0;
852-
853-
854887
//Draw Life Bars
855888
switch (enemies[stageid][drawingenemies[i][2]][5]) {
856889
case 0:
@@ -1053,6 +1086,7 @@ function drawHUD() {
10531086
fill('black');
10541087
text(plifep, 82, 65);
10551088
drawTimer();
1089+
text(countPoints(0), 1245, 65);
10561090
fill('#FFFFFF');
10571091
}
10581092

@@ -1095,22 +1129,23 @@ function damage() {
10951129
}
10961130
}
10971131
}
1098-
for (j = 0; j < bmax; j++) {
1132+
for (j = 0; j <= bulletsCounter; j++) {
10991133
if (enemies[stageid][drawingenemies[l][2]][7] > 0 && bullets[j][5] && !bullets[j][6]) {
11001134
if (bullets[j][1] <= drawingenemies[l][1] + esize + bullets[j][2] / 2 && bullets[j][1] >= drawingenemies[l][1] - bullets[j][2] / 2) {
11011135
if (bullets[j][0] >= drawingenemies[l][0] - bullets[j][2] / 2 && bullets[j][0] <= drawingenemies[l][0] + esize + bullets[j][2] / 2) {
11021136
bullets[j][5] = false;
11031137
lifePoints(drawingenemies[l][2], -1);
11041138
if (enemies[stageid][drawingenemies[l][2]][7] === 0) {
1105-
if (enemies[stageid][drawingenemies[l][2]][5] === 0) score[stageid] += 150;
1106-
else score[stageid] += 250;
1139+
if (enemies[stageid][drawingenemies[l][2]][5] === 0) score += 150;
1140+
else if (enemies[stageid][drawingenemies[l][2]][5] === 1) score += 250;
1141+
else score += 400;
11071142
}
11081143
}
11091144
}
11101145
}
11111146
}
11121147
}
1113-
for (j = 0; j < bmax; j++) {
1148+
for (j = 0; j <= bulletsCounter; j++) {
11141149
if (bullets[j][6] && bullets[j][5]) {
11151150
if (bullets[j][1] <= py + sy + bullets[j][2] / 2 && bullets[j][1] >= py - bullets[j][2] / 2) {
11161151
if (bullets[j][0] >= px + spos - bullets[j][2] / 2 && bullets[j][0] <= px + spos + sx + bullets[j][2] / 2) {
@@ -1209,13 +1244,18 @@ function spikesCollision() {
12091244
}
12101245
}
12111246

1212-
function countPoints() {
1213-
for (var k = 1; k <= plifep; k++) score[stageid] += 75;
1214-
var points = (60 * minutes + seconds) * 300 / maxtime;
1215-
if (noshot === 0) noshot++;
1216-
var points2 = 350 / noshot;
1217-
score[stageid] = score[stageid] + points + points2;
1218-
score[stageid] = Math.round(score[stageid]);
1247+
function countPoints(type) {
1248+
switch (type) {
1249+
case 0:
1250+
points = (60 * minutes + seconds) * 600 / maxtime;
1251+
points2 = 500 / noshot;
1252+
currentscore = Math.round(points + points2 + score);
1253+
return currentscore + generalscore;
1254+
break;
1255+
case 1:
1256+
generalscore = generalscore + currentscore;
1257+
break;
1258+
}
12191259
}
12201260

12211261

js/enemies.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ enemies[3][0][3] = 1186;
195195
enemies[3][0][4] = true;
196196
enemies[3][0][5] = 2;
197197
enemies[3][0][6] = -1;
198-
enemies[3][0][7] = 50;
198+
enemies[3][0][7] = 75;
199199
enemies[3][0][8] = false;
200200
enemies[3][0][9] = 30;
201201
enemies[3][0][10] = 450;

0 commit comments

Comments
 (0)