adding basic classes

This commit is contained in:
zombidust 2014-03-16 13:40:52 +02:00
parent 941ccf7648
commit 82292deb53
6 changed files with 347 additions and 0 deletions

59
source/bullet.cpp Normal file
View 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
View 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
View 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
View 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
View 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
View 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