Skip to content

Commit 339c90b

Browse files
committed
Dodanie punktow zyc oraz mozliwosci zadawania obrazen.
1 parent 94284b8 commit 339c90b

File tree

1 file changed

+109
-30
lines changed

1 file changed

+109
-30
lines changed

js/app_p5.js

+109-30
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ var pxspeed = 7;
1818
var sx = 50;
1919
var sy = 50;
2020

21+
//Player life points
22+
var plifep = 3;
23+
//True if player can't get damage
24+
//False if player can get damage
25+
var nodamage = false;
26+
//No damage counter
27+
var ndcounter = 0;
28+
2129
var onair = false;
2230

2331
//True if player rise
@@ -117,6 +125,8 @@ enemies[0][2] = 650;
117125
enemies[0][3] = 810;
118126
enemies[0][4] = true;
119127
enemies[0][5] = 0;
128+
enemies[0][6] = -1;
129+
enemies[0][7] = 3;
120130

121131
enemies[1][0] = 4690;
122132
enemies[1][1] = 280;
@@ -125,6 +135,7 @@ enemies[1][3] = 4810;
125135
enemies[1][4] = true;
126136
enemies[1][5] = 1;
127137
enemies[1][6] = 0;
138+
enemies[1][7] = 2;
128139

129140
var enemyimg;
130141
var enemyimg2;
@@ -216,14 +227,18 @@ function keyTyped() {
216227
}
217228

218229
function drawObjects() {
219-
//Draw Player
220-
rect(px, py, sx, sy);
230+
drawPlayer();
221231
drawPlatforms();
222232
drawEnemies();
223233
drawSpikes();
224234
drawBullets();
225235
}
226236

237+
function drawPlayer() {
238+
if (!nodamage) rect(px, py, sx, sy);
239+
else noDamage();
240+
}
241+
227242
function drawPlatforms() {
228243
fill('#0000FF');
229244
i = Math.max(rstart - 1, 0);
@@ -316,7 +331,7 @@ function collision() {
316331
if (jumped) jump();
317332
bulletsCollision();
318333
moveEnemies();
319-
enemiesDamage();
334+
damage();
320335
spikesCollision();
321336
checkIfUnderScreen();
322337
}
@@ -522,30 +537,40 @@ function restartGame() {
522537
rstart = 0;
523538
cstart = 0;
524539
paused = true;
525-
540+
plifep = 3;
541+
nodamage = false;
542+
ndcounter = 0;
543+
for (j = 0; j < enumber; j++) {
544+
if (enemies[j][5] === 0) enemies[j][7] = 3;
545+
else enemies[j][7] = 2;
546+
}
547+
for (j = 0; j < bmax; j++) bullets[j][5] = 0;
526548
}
527549

528550

529551
function moveEnemies() {
530552
for (i = 0; i < enumber; i++) {
553+
if (enemies[i][7] > 0) {
531554
//Check enemy direction
532-
if (enemies[i][4]) {
555+
if (enemies[i][4]) {
533556
//Right--->
534-
if (enemies[i][3] - enemies[i][0] - esize <= espeed) {
535-
enemies[i][0] = enemies[i][3] - esize;
536-
enemies[i][4] = false;
537-
} else {
538-
enemies[i][0] += espeed;
557+
if (enemies[i][3] - enemies[i][0] - esize <= espeed) {
558+
enemies[i][0] = enemies[i][3] - esize;
559+
enemies[i][4] = false;
560+
} else {
561+
enemies[i][0] += espeed;
562+
}
563+
539564
}
565+
else {
566+
//Left <---
567+
if (enemies[i][0] - enemies[i][2] <= espeed) {
568+
enemies[i][0] = enemies[i][2];
569+
enemies[i][4] = true;
570+
} else {
571+
enemies[i][0] -= espeed;
572+
}
540573

541-
}
542-
else {
543-
//Left <---
544-
if (enemies[i][0] - enemies[i][2] <= espeed) {
545-
enemies[i][0] = enemies[i][2];
546-
enemies[i][4] = true;
547-
} else {
548-
enemies[i][0] -= espeed;
549574
}
550575

551576
}
@@ -557,22 +582,76 @@ function moveEnemies() {
557582
function drawEnemies() {
558583
fill('gold');
559584
for (i = 0; i < enumber; i++) {
560-
if (enemies[i][5] === 0) image(enemyimg, enemies[i][0] - spos, enemies[i][1]);
561-
else image(enemyimg2, enemies[i][0] - spos, enemies[i][1]);
585+
if (enemies[i][7] > 0) {
586+
if (enemies[i][5] === 0) image(enemyimg, enemies[i][0] - spos, enemies[i][1]);
587+
else image(enemyimg2, enemies[i][0] - spos, enemies[i][1]);
588+
}
562589
}
563590
fill('#FFFFFF');
564591
}
565592

566-
function enemiesDamage() {
567-
for (i = 0; i < enumber; i++) {
568-
if (enemies[i][5] === 1) {
569-
if (px + spos >= enemies[i][0] - 500 && px + spos <= enemies[i][0] + 500 && enemies[i][6] === 0) {
570-
enemies[i][6]++;
571-
newBullet(i);
572-
} else if (enemies[i][6] > 0 && enemies[i][6] < 60 * ttshot + 1) enemies[i][6]++;
573-
else if (enemies[i][6] === 60 * ttshot + 1) enemies[i][6] = 0;
593+
function damage() {
594+
for (l = 0; l < enumber; l++) {
595+
if (enemies[l][5] === 1 && enemies[l][7] > 0) {
596+
if (px + spos >= enemies[l][0] - 500 && px + spos <= enemies[l][0] + 500 && enemies[l][6] === 0) {
597+
enemies[l][6]++;
598+
newBullet(l);
599+
} else if (enemies[l][6] > 0 && enemies[l][6] < 60 * ttshot + 1) enemies[l][6]++;
600+
else if (enemies[l][6] === 60 * ttshot + 1) enemies[l][6] = 0;
601+
}
602+
if (enemies[l][7] > 0) {
603+
if (py <= enemies[l][1] + esize - sy && py >= enemies[l][1] - sy) {
604+
if (px >= enemies[l][0] - spos - sx && px <= enemies[l][0] + esize - spos) {
605+
lifePoints(-1, -1);
606+
}
607+
}
608+
}
609+
for (j = 0; j < bmax; j++) {
610+
if (enemies[l][7] > 0) {
611+
if (bullets[j][5]) {
612+
if (!bullets[j][6]) {
613+
if (bullets[j][1] <= enemies[l][1] + esize + bullets[j][2] / 2 && bullets[j][1] >= enemies[l][1] - bullets[j][2] / 2) {
614+
if (bullets[j][0] >= enemies[l][0] - bullets[j][2] / 2 && bullets[j][0] <= enemies[l][0] + esize + bullets[j][2] / 2) {
615+
bullets[j][5] = false;
616+
lifePoints(l, -1);
617+
}
618+
}
619+
}
620+
}
621+
}
574622
}
575623
}
624+
for (j = 0; j < bmax; j++) {
625+
if (bullets[j][6]) {
626+
if (bullets[j][5]) {
627+
if (bullets[j][1] <= py + sy + bullets[j][2] / 2 && bullets[j][1] >= py - bullets[j][2] / 2) {
628+
if (bullets[j][0] >= px + spos - bullets[j][2] / 2 && bullets[j][0] <= px + spos + sx + bullets[j][2] / 2) {
629+
bullets[j][5] = false;
630+
lifePoints(-1, -1);
631+
}
632+
}
633+
}
634+
}
635+
}
636+
}
637+
638+
function lifePoints(id, number) {
639+
if (id === -1 && !nodamage) {
640+
plifep += number;
641+
nodamage = true;
642+
} else if (id >= 0) {
643+
enemies[id][7] += number;
644+
}
645+
if (plifep === 0) lose();
646+
}
647+
648+
function noDamage() {
649+
ndcounter++;
650+
if (ndcounter % 10 === 0) rect(px, py, sx, sy);
651+
if (ndcounter === 60 * 1.5) {
652+
nodamage = false;
653+
ndcounter = 0;
654+
}
576655
}
577656

578657
function drawSpikes() {
@@ -596,10 +675,10 @@ function spikesCollision() {
596675
for (i = 0; i < maxs[stageid]; i++) {
597676
//Spikes UP AND DOWN
598677
if (pposx >= spikes[stageid][i][0] - swidth - sx && pposx <= spikes[stageid][i][0] + swidth)
599-
if ((spikes[stageid][i][2] === 0 && py >= spikes[stageid][i][1] && py <= spikes[stageid][i][1] + sheight) || (spikes[stageid][i][2] === 1 && py >= spikes[stageid][i][1] - sheight && py <= spikes[stageid][i][1])) lose();
678+
if ((spikes[stageid][i][2] === 0 && py >= spikes[stageid][i][1] && py <= spikes[stageid][i][1] + sheight) || (spikes[stageid][i][2] === 1 && py >= spikes[stageid][i][1] - sheight && py <= spikes[stageid][i][1])) lifePoints(-1, -1);
600679

601680
//Spikes LEFT AND RIGHT
602681
if (py >= spikes[stageid][i][1] - swidth && py <= spikes[stageid][i][1] + swidth)
603-
if ((spikes[stageid][i][2] === 2 && pposx >= spikes[stageid][i][0] - sheight - sx / 3 && pposx <= spikes[stageid][i][0] + sx) || (spikes[stageid][i][2] === 3 && pposx >= spikes[stageid][i][0] && pposx <= spikes[stageid][i][0] + sheight)) lose();
682+
if ((spikes[stageid][i][2] === 2 && pposx >= spikes[stageid][i][0] - sheight - sx / 3 && pposx <= spikes[stageid][i][0] + sx) || (spikes[stageid][i][2] === 3 && pposx >= spikes[stageid][i][0] && pposx <= spikes[stageid][i][0] + sheight)) lifePoints(-1, -1);
604683
}
605684
}

0 commit comments

Comments
 (0)