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
Tank/Tank.cpp
- Committer:
- el17mcd
- Date:
- 2019-04-27
- Revision:
- 17:cb39d9fa08dc
- Parent:
- 16:a2c945279b79
- Child:
- 18:165e3d49daa8
File content as of revision 17:cb39d9fa08dc:
/* Tank.cpp Produces a tank object and dictates it's movement 1.4.19 */ #include "Tank.h" Tank::Tank() { _speed = 1; } Tank::~Tank() { } // Accessors int Tank::get_position_x() { return _position_x; } int Tank::get_position_y() { return _position_y; } int Tank::get_hitbox(int i) { return _hitbox[i]; } int Tank::get_health() { return _health; } // Mutators void Tank::set_position(int x, int y) { _position_x = x; _position_y = y; } void Tank::set_movement_limits(int left, int right) // Determines the boundaries within which { // a tank can move. Prevents it from leaving the _left_lim = left; // screen or moving through the central obstacle. _right_lim = right; } void Tank::set_health(int h) { _health = h; } void Tank::set_speed(int s) { _speed = s; } // Other Methods void Tank::move_position(int d) // Governs how the tank moves in the horizontal { // x direction. The speed in which moves is related int slowness = 9 - _speed; // to framerate, therefore in order to slow its movement int i = _move_counter % slowness; // it cannot move on every frame. if (d > 0) { _move_counter++; // Movement counter increases if right button is pressed. if (i == 0 && _position_x < _right_lim) { // i reaches zero every (slowness)number of cycles of the game loop _position_x++; // provided the tanks is not at a limit it will move when i reaches zero. } } else if (d < 0) { _move_counter--; // Movement counter decreases if left button is pressed. if (i == 0 && _position_x > _left_lim) { _position_x--; } } } void Tank::lose_health() { _health--; } void Tank::generate_hitbox() // Generates a hitbox based on the x and y position of the { int i = 0; for (int i0 = 0; i0 < 4; i0++) { for (int i1 = 1; i1 < 11; i1++) { _hitbox[i] = (i0 + _position_y) * 84 + _position_x + i1; i++; } } }