-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFrog.cpp
executable file
·85 lines (81 loc) · 2.08 KB
/
Frog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//
// Created by Alexis Rodriguez on 11/28/20.
//
#include "Frog.h"
Frog::Frog() : Frog("images/frog.png"){
}
Frog::Frog(const std::string& filePath){
if(!frogTexture.loadFromFile(filePath)){
std::cout << filePath << " could not be loaded into frogTexture" << std::endl;
exit(1);
}
frogRect.top = TOP;
frogRect.left = LEFT;
frogRect.width = WIDTH;
frogRect.height = HEIGHT;
setTexture(frogTexture);
setTextureRect(frogRect);
init();
}
sf::FloatRect Frog::getGlobalBounds(){
return sf::Sprite::getGlobalBounds();
}
void Frog::init(){
setPosition({START_X_POS, START_Y_POS});
}
void Frog::deathReset(){
frogSounds.playSquash();
init();
}
void Frog::frogWinReset(){
init();
}
void Frog::addEvents(sf::RenderTarget& window, sf::Event event)
{
if (event.type == sf::Event::KeyPressed) {
if (event.key.code == sf::Keyboard::Up) {
moveUp();
}
if (event.key.code == sf::Keyboard::Down) {
moveDown();
}
if (event.key.code == sf::Keyboard::Left) {
moveLeft();
}
if (event.key.code == sf::Keyboard::Right) {
moveRight();
}
}
}
void Frog::moveUp(){
if (getPosition().y > LOWEST_TOP_BOUNDS) {
frogSounds.playHop();
setPosition({getPosition().x, getPosition().y - PIXEL_SIZE});
}
}
void Frog::moveDown(){
if (getPosition().y < HIGHEST_BOTTOM_BOUNDS) {
frogSounds.playHop();
setPosition({getPosition().x, getPosition().y + PIXEL_SIZE});
}
}
void Frog::moveLeft(){
if (getPosition().x > LOWEST_LEFT_BOUNDS) {
frogSounds.playHop();
setPosition({getPosition().x - PIXEL_SIZE, getPosition().y});
}
}
void Frog::moveRight(){
if (getPosition().x < HIGHEST_RIGHT_BOUNDS) {
frogSounds.playHop();
setPosition({getPosition().x + PIXEL_SIZE, getPosition().y});
}
}
void Frog::onLogMovement(int direction, int offset){
if(direction == DIRECTION::LEFT){
move(offset * -1,0);
}
if(direction == DIRECTION::RIGHT){
move(offset, 0);
}
}