adding basic classes
This commit is contained in:
parent
941ccf7648
commit
82292deb53
59
source/bullet.cpp
Normal file
59
source/bullet.cpp
Normal file
@ -0,0 +1,59 @@
|
||||
#include "projectiles.h"
|
||||
#include "entities.h"
|
||||
#include "point.h"
|
||||
|
||||
bool Bullet::hitScan() {
|
||||
if((origin_.getX()+(size_/2))>=map_.getX()) {
|
||||
hit_=true;
|
||||
}
|
||||
else if((origin_.getX()-(size_/2))<=0) {
|
||||
hit_=true;
|
||||
}
|
||||
else if((origin_.getY()+(size_/2))>=map_.getY()) {
|
||||
hit_=true;
|
||||
}
|
||||
else if((origin_.getY()-(size_/2))<=0) {
|
||||
hit_=true;
|
||||
}
|
||||
else {
|
||||
switch(direction_) {
|
||||
case 0:
|
||||
origin_.setY(origin_.getY()-4);
|
||||
break;
|
||||
case 1:
|
||||
origin_.setX(origin_.getX()+2);
|
||||
origin_.setY(origin_.getY()-2);
|
||||
break;
|
||||
case 2:
|
||||
origin_.setX(origin_.getX()+4);
|
||||
break;
|
||||
case 3:
|
||||
origin_.setX(origin_.getX()+2);
|
||||
origin_.setY(origin_.getY()+2);
|
||||
break;
|
||||
case 4:
|
||||
origin_.setY(origin_.getY()+4);
|
||||
break;
|
||||
case 5:
|
||||
origin_.setX(origin_.getX()-2);
|
||||
origin_.setY(origin_.getY()+2);
|
||||
break;
|
||||
case 6:
|
||||
origin_.setX(origin_.getX()-4);
|
||||
break;
|
||||
case 7:
|
||||
origin_.setX(origin_.getX()-2);
|
||||
origin_.setY(origin_.getY()-2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return hit_;
|
||||
}
|
||||
|
||||
Point Bullet::getPosition() const {
|
||||
return origin_;
|
||||
}
|
||||
|
||||
int Bullet::getSize() const {
|
||||
return size_;
|
||||
}
|
||||
29
source/entities.h
Normal file
29
source/entities.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef ENTITIES_H_
|
||||
#define ENTITIES_H_
|
||||
|
||||
#include "point.h"
|
||||
|
||||
class Player {
|
||||
Point origin_;
|
||||
Point map_;
|
||||
int direction_;
|
||||
int size_;
|
||||
|
||||
int checkDirection(int dir) const;
|
||||
|
||||
public:
|
||||
|
||||
Player()
|
||||
: origin_(5,5),
|
||||
map_(640,480),
|
||||
direction_(0),
|
||||
size_(10)
|
||||
{}
|
||||
|
||||
Point getPosition() const;
|
||||
int getDirection() const;
|
||||
void movePlayer(int dir);
|
||||
void init(Point origin, int size, int dir, Point map);
|
||||
};
|
||||
|
||||
#endif
|
||||
188
source/player.cpp
Normal file
188
source/player.cpp
Normal file
@ -0,0 +1,188 @@
|
||||
#include "point.h"
|
||||
#include "entities.h"
|
||||
|
||||
int Player::checkDirection(int dir) const {
|
||||
int x=origin_.getX();
|
||||
int y=origin_.getY();
|
||||
switch(dir) {
|
||||
case 0:
|
||||
if(y==(size_/2)) {
|
||||
return 12;
|
||||
}
|
||||
else if(y==(size_/2)+1) {
|
||||
return 8;
|
||||
}
|
||||
else return 0;
|
||||
break;
|
||||
case 1:
|
||||
if((y==(size_/2))&&(x!=(map_.getX()-(size_/2)))) {
|
||||
return 9;
|
||||
}
|
||||
else if((y==(size_/2))&&(x==(map_.getX()-(size_/2)))) {
|
||||
return 13;
|
||||
}
|
||||
else if((y!=(size_/2))&&(x==(map_.getX()-(size_/2)))) {
|
||||
return 8;
|
||||
}
|
||||
else return 1;
|
||||
break;
|
||||
case 2:
|
||||
if(x==(map_.getX()-(size_/2))) {
|
||||
return 14;
|
||||
}
|
||||
else if(x==(map_.getX()-((size_/2)+1))) {
|
||||
return 9;
|
||||
}
|
||||
else {
|
||||
return 2;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if((y==(map_.getY()-(size_/2)))&&(x!=(map_.getX()-(size_/2)))) {
|
||||
return 9;
|
||||
}
|
||||
else if((y==(map_.getY()-(size_/2)))&&(x==(map_.getX()-(size_/2)))) {
|
||||
return 15;
|
||||
}
|
||||
else if((y!=(map_.getY()-(size_/2)))&&(x==(map_.getX()-(size_/2)))) {
|
||||
return 10;
|
||||
}
|
||||
else return 3;
|
||||
break;
|
||||
case 4:
|
||||
if(y==(map_.getY()-(size_/2))) {
|
||||
return 16;
|
||||
}
|
||||
else if(y==(map_.getX()-((size_/2)+1))) {
|
||||
return 10;
|
||||
}
|
||||
else return 4;
|
||||
break;
|
||||
case 5:
|
||||
if((y==(map_.getY()-(size_/2)))&&(x!=(size_/2))) {
|
||||
return 11;
|
||||
}
|
||||
else if((y==(map_.getY()-(size_/2)))&&(x==(size_/2))) {
|
||||
return 17;
|
||||
}
|
||||
else if((y!=(map_.getY()-(size_/2)))&&(x==(size_/2))) {
|
||||
return 10;
|
||||
}
|
||||
else return 5;
|
||||
break;
|
||||
case 6:
|
||||
if(x==(size_/2)) {
|
||||
return 18;
|
||||
}
|
||||
else if(x==((size_/2)+1)) {
|
||||
return 11;
|
||||
}
|
||||
else {
|
||||
return 6;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if((y==(size_/2))&&(x!=(size_/2))) {
|
||||
return 11;
|
||||
}
|
||||
else if((y==(size_/2))&&(x==(size_/2))) {
|
||||
return 19;
|
||||
}
|
||||
else if((y!=(size_/2))&&(x==(size_/2))) {
|
||||
return 8;
|
||||
}
|
||||
else return 7;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Point Player::getPosition() const {
|
||||
return origin_;
|
||||
}
|
||||
|
||||
void Player::movePlayer(int dir) {
|
||||
direction_=checkDirection(dir);
|
||||
switch(direction_) {
|
||||
case 0:
|
||||
origin_.setY(origin_.getY()-2);
|
||||
break;
|
||||
case 1:
|
||||
origin_.setX(origin_.getX()+1);
|
||||
origin_.setY(origin_.getY()-1);
|
||||
break;
|
||||
case 2:
|
||||
origin_.setX(origin_.getX()+2);
|
||||
break;
|
||||
case 3:
|
||||
origin_.setX(origin_.getX()+1);
|
||||
origin_.setY(origin_.getY()+1);
|
||||
break;
|
||||
case 4:
|
||||
origin_.setY(origin_.getY()+2);
|
||||
break;
|
||||
case 5:
|
||||
origin_.setX(origin_.getX()-1);
|
||||
origin_.setY(origin_.getY()+1);
|
||||
break;
|
||||
case 6:
|
||||
origin_.setX(origin_.getX()-2);
|
||||
break;
|
||||
case 7:
|
||||
origin_.setX(origin_.getX()-1);
|
||||
origin_.setY(origin_.getY()-1);
|
||||
break;
|
||||
case 8:
|
||||
direction_=0;
|
||||
origin_.setY(origin_.getY()-1);
|
||||
break;
|
||||
case 9:
|
||||
direction_=2;
|
||||
origin_.setX(origin_.getX()+1);
|
||||
break;
|
||||
case 10:
|
||||
direction_=4;
|
||||
origin_.setY(origin_.getY()+1);
|
||||
break;
|
||||
case 11:
|
||||
direction_=6;
|
||||
origin_.setX(origin_.getX()-1);
|
||||
break;
|
||||
case 12:
|
||||
direction_=0;
|
||||
break;
|
||||
case 13:
|
||||
direction_=1;
|
||||
break;
|
||||
case 14:
|
||||
direction_=2;
|
||||
break;
|
||||
case 15:
|
||||
direction_=3;
|
||||
break;
|
||||
case 16:
|
||||
direction_=4;
|
||||
break;
|
||||
case 17:
|
||||
direction_=5;
|
||||
break;
|
||||
case 18:
|
||||
direction_=6;
|
||||
break;
|
||||
case 19:
|
||||
direction_=7;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int Player::getDirection() const {
|
||||
return direction_;
|
||||
}
|
||||
|
||||
void Player::init(Point origin, int size, int dir, Point map) {
|
||||
origin_.setX(origin.getX());
|
||||
origin_.setY(origin.getY());
|
||||
size_=size;
|
||||
direction_=dir;
|
||||
map_.setX(map.getX());
|
||||
map_.setY(map.getY());
|
||||
}
|
||||
14
source/point.cpp
Normal file
14
source/point.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "point.h"
|
||||
|
||||
int Point::getY() const {
|
||||
return y_;
|
||||
}
|
||||
int Point::getX() const {
|
||||
return x_;
|
||||
}
|
||||
void Point::setX(int x) {
|
||||
x_=x;
|
||||
}
|
||||
void Point::setY(int y) {
|
||||
y_=y;
|
||||
}
|
||||
20
source/point.h
Normal file
20
source/point.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef POINT_H_
|
||||
#define POINT_H_
|
||||
|
||||
class Point {
|
||||
int x_;
|
||||
int y_;
|
||||
|
||||
public:
|
||||
Point(int x=0, int y=0)
|
||||
: x_(x),
|
||||
y_(y)
|
||||
{}
|
||||
|
||||
int getY() const;
|
||||
int getX() const;
|
||||
void setX(int x);
|
||||
void setY(int y);
|
||||
};
|
||||
|
||||
#endif
|
||||
37
source/projectiles.h
Normal file
37
source/projectiles.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef PROJECTILES_H_
|
||||
#define PROJECTILES_H_
|
||||
#include "point.h"
|
||||
#include "entities.h"
|
||||
|
||||
class Bullet {
|
||||
int direction_;
|
||||
Point origin_;
|
||||
Point map_;
|
||||
bool hit_;
|
||||
int damage_;
|
||||
int size_;
|
||||
|
||||
public:
|
||||
Bullet()
|
||||
: direction_(0),
|
||||
origin_(0,0),
|
||||
map_(640,480),
|
||||
hit_(false),
|
||||
damage_(0),
|
||||
size_(0)
|
||||
{}
|
||||
|
||||
Bullet(Player p, int dmg = 0, Point map, int size)
|
||||
: direction_(p.getDirection()),
|
||||
origin_(p.getPosition()),
|
||||
map_(map),
|
||||
hit_(false),
|
||||
damage_(dmg),
|
||||
size_(size)
|
||||
{}
|
||||
|
||||
bool hitScan();
|
||||
Point getPosition() const;
|
||||
int getSize() const;
|
||||
};
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user