Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Enemy/Enemy2.cpp@26:3652bc2fe3fc, 2019-05-09 (annotated)
- Committer:
- S_Tingle
- Date:
- Thu May 09 14:40:58 2019 +0000
- Revision:
- 26:3652bc2fe3fc
- Parent:
- 22:8e38efeae0c9
I understand the university's rules on plagiarism. I hereby declare this my own independent work.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
S_Tingle | 12:200a1266ceee | 1 | #include "Enemy2.h" |
S_Tingle | 12:200a1266ceee | 2 | |
S_Tingle | 22:8e38efeae0c9 | 3 | Enemy2::Enemy2() |
S_Tingle | 22:8e38efeae0c9 | 4 | { |
S_Tingle | 21:7d4827af00d6 | 5 | |
S_Tingle | 12:200a1266ceee | 6 | } |
S_Tingle | 12:200a1266ceee | 7 | |
S_Tingle | 22:8e38efeae0c9 | 8 | Enemy2::~Enemy2() |
S_Tingle | 22:8e38efeae0c9 | 9 | { |
S_Tingle | 12:200a1266ceee | 10 | |
S_Tingle | 12:200a1266ceee | 11 | } |
S_Tingle | 12:200a1266ceee | 12 | |
S_Tingle | 22:8e38efeae0c9 | 13 | void Enemy2::init(int x,int y) |
S_Tingle | 22:8e38efeae0c9 | 14 | { |
S_Tingle | 22:8e38efeae0c9 | 15 | x_enem = x; |
S_Tingle | 22:8e38efeae0c9 | 16 | y_enem = y; |
S_Tingle | 12:200a1266ceee | 17 | } |
S_Tingle | 12:200a1266ceee | 18 | |
S_Tingle | 26:3652bc2fe3fc | 19 | // resets incrementer to 0 // |
S_Tingle | 26:3652bc2fe3fc | 20 | void Enemy2::resetIncrementer(){ |
S_Tingle | 26:3652bc2fe3fc | 21 | _incrementer_enem2 = 0; |
S_Tingle | 26:3652bc2fe3fc | 22 | } |
S_Tingle | 26:3652bc2fe3fc | 23 | |
S_Tingle | 22:8e38efeae0c9 | 24 | int Enemy2::get_x_enem() |
S_Tingle | 22:8e38efeae0c9 | 25 | { |
S_Tingle | 22:8e38efeae0c9 | 26 | return x_enem; |
S_Tingle | 12:200a1266ceee | 27 | } |
S_Tingle | 12:200a1266ceee | 28 | |
S_Tingle | 22:8e38efeae0c9 | 29 | int Enemy2::get_y_enem() |
S_Tingle | 22:8e38efeae0c9 | 30 | { |
S_Tingle | 22:8e38efeae0c9 | 31 | return y_enem; |
S_Tingle | 12:200a1266ceee | 32 | } |
S_Tingle | 12:200a1266ceee | 33 | |
S_Tingle | 22:8e38efeae0c9 | 34 | void Enemy2::drawSpriteB(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 35 | { |
S_Tingle | 22:8e38efeae0c9 | 36 | lcd.drawSprite(x_enem, y_enem,7,7,(int *)enemy_B); |
S_Tingle | 12:200a1266ceee | 37 | } |
S_Tingle | 12:200a1266ceee | 38 | |
S_Tingle | 22:8e38efeae0c9 | 39 | void Enemy2::drawSprite2(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 40 | { |
S_Tingle | 22:8e38efeae0c9 | 41 | lcd.drawSprite(x_enem, y_enem,7,7,(int *)enemy_2); |
S_Tingle | 22:8e38efeae0c9 | 42 | } |
S_Tingle | 22:8e38efeae0c9 | 43 | |
S_Tingle | 22:8e38efeae0c9 | 44 | void Enemy2::drawSpriteC(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 45 | { |
S_Tingle | 22:8e38efeae0c9 | 46 | lcd.drawSprite(x_enem, y_enem,7,7,(int *)enemy_C); |
S_Tingle | 21:7d4827af00d6 | 47 | } |
S_Tingle | 21:7d4827af00d6 | 48 | |
S_Tingle | 22:8e38efeae0c9 | 49 | void Enemy2::movementB(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 50 | { |
S_Tingle | 22:8e38efeae0c9 | 51 | // incrementer increments 1 for every pixel enemyB needs to move // |
S_Tingle | 22:8e38efeae0c9 | 52 | // and thus it's possible to create a straight path // |
S_Tingle | 22:8e38efeae0c9 | 53 | accel = 1; |
S_Tingle | 22:8e38efeae0c9 | 54 | _incrementer_enem2++; |
S_Tingle | 22:8e38efeae0c9 | 55 | if ( _incrementer_enem2 == 28 ) { |
S_Tingle | 22:8e38efeae0c9 | 56 | _incrementer_enem2 = 0; |
S_Tingle | 22:8e38efeae0c9 | 57 | } |
S_Tingle | 22:8e38efeae0c9 | 58 | if ( _incrementer_enem2 >= 0 && _incrementer_enem2 <= 13) { |
S_Tingle | 22:8e38efeae0c9 | 59 | y_enem++; |
S_Tingle | 22:8e38efeae0c9 | 60 | } else if ( _incrementer_enem2 >= 14 && _incrementer_enem2 <= 27) { |
S_Tingle | 22:8e38efeae0c9 | 61 | y_enem--; |
S_Tingle | 22:8e38efeae0c9 | 62 | } |
S_Tingle | 12:200a1266ceee | 63 | } |
S_Tingle | 12:200a1266ceee | 64 | |
S_Tingle | 22:8e38efeae0c9 | 65 | void Enemy2::movement2(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 66 | { |
S_Tingle | 22:8e38efeae0c9 | 67 | // incrementer increments 1 for every pixel enemy2 needs to move // |
S_Tingle | 22:8e38efeae0c9 | 68 | // and thus it's possible to create a straight path // |
S_Tingle | 22:8e38efeae0c9 | 69 | accel = 1; |
S_Tingle | 22:8e38efeae0c9 | 70 | _incrementer_enem2++; |
S_Tingle | 22:8e38efeae0c9 | 71 | if ( _incrementer_enem2 == 24 ) { |
S_Tingle | 22:8e38efeae0c9 | 72 | _incrementer_enem2 = 0; |
S_Tingle | 22:8e38efeae0c9 | 73 | } |
S_Tingle | 22:8e38efeae0c9 | 74 | if ( _incrementer_enem2 >= 0 && _incrementer_enem2 <= 11) { |
S_Tingle | 22:8e38efeae0c9 | 75 | y_enem--; |
S_Tingle | 22:8e38efeae0c9 | 76 | } else if ( _incrementer_enem2 >= 12 && _incrementer_enem2 <= 23) { |
S_Tingle | 22:8e38efeae0c9 | 77 | y_enem++; |
S_Tingle | 22:8e38efeae0c9 | 78 | } |
S_Tingle | 16:37d98c281eb3 | 79 | } |
S_Tingle | 16:37d98c281eb3 | 80 | |
S_Tingle | 22:8e38efeae0c9 | 81 | void Enemy2::movementC(N5110 &lcd) |
S_Tingle | 22:8e38efeae0c9 | 82 | { |
S_Tingle | 22:8e38efeae0c9 | 83 | // incrementer increments 1 for every pixel enemyC needs to move // |
S_Tingle | 22:8e38efeae0c9 | 84 | // and thus it's possible to create a straight path // |
S_Tingle | 22:8e38efeae0c9 | 85 | accel = 1; |
S_Tingle | 22:8e38efeae0c9 | 86 | _incrementer_enem2++; |
S_Tingle | 22:8e38efeae0c9 | 87 | if ( _incrementer_enem2 == 58 ) { |
S_Tingle | 22:8e38efeae0c9 | 88 | _incrementer_enem2 = 0; |
S_Tingle | 22:8e38efeae0c9 | 89 | } |
S_Tingle | 22:8e38efeae0c9 | 90 | if ( _incrementer_enem2 >= 0 && _incrementer_enem2 <= 28) { |
S_Tingle | 22:8e38efeae0c9 | 91 | x_enem++; |
S_Tingle | 22:8e38efeae0c9 | 92 | } else if ( _incrementer_enem2 >= 29 && _incrementer_enem2 <= 57) { |
S_Tingle | 22:8e38efeae0c9 | 93 | x_enem--; |
S_Tingle | 22:8e38efeae0c9 | 94 | } |
S_Tingle | 22:8e38efeae0c9 | 95 | } |
S_Tingle | 16:37d98c281eb3 | 96 | |
S_Tingle | 22:8e38efeae0c9 | 97 | bool Enemy2::collidePlayer(int x, int y, Gamepad &pad) |
S_Tingle | 22:8e38efeae0c9 | 98 | { |
S_Tingle | 22:8e38efeae0c9 | 99 | // if collision detected then tone plays // |
S_Tingle | 22:8e38efeae0c9 | 100 | for (int ix = 0; ix < 7; ix++) { |
S_Tingle | 22:8e38efeae0c9 | 101 | for (int iy = 0; iy < 7; iy++) { |
S_Tingle | 22:8e38efeae0c9 | 102 | if ( x + ix == x_enem + 3 && y + iy == y_enem + 3 ) { |
S_Tingle | 22:8e38efeae0c9 | 103 | pad.tone(400,0.5); |
S_Tingle | 22:8e38efeae0c9 | 104 | return true; |
S_Tingle | 22:8e38efeae0c9 | 105 | } |
S_Tingle | 22:8e38efeae0c9 | 106 | } |
S_Tingle | 22:8e38efeae0c9 | 107 | } |
S_Tingle | 22:8e38efeae0c9 | 108 | return false; |
S_Tingle | 12:200a1266ceee | 109 | } |