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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
#ifndef _move_h
#define _move_h
#include "spaceobj.h"
#include <vector>
using namespace std;
//Most basic, just move whatever dx and dy are
class Move{
public:
Move( double _dx, double _dy );
/*
virtual void setP( int & ax, int & ay, double & vx, double & vy );
virtual void setD( double _dx, double _dy );
*/
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
/*
virtual double DX();
virtual double DY();
virtual double Accel_X();
virtual double Accel_Y();
*/
protected:
// virtual bool MoveReal();
/*
virtual int AX();
virtual int AY();
*/
protected:
/*
int * actualx;
int * actualy;
double * virtualx;
double * virtualy;
*/
const double o_dx;
const double o_dy;
/*
double dx, dy;
*/
double accel_x, accel_y;
};
//Move from side to side
class MoveHorizontal: public Move{
public:
MoveHorizontal( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
protected:
int dir;
};
//Heads for the player
class MoveMine: public Move{
public:
MoveMine( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
protected:
int fx, fy;
double sx, sy;
};
//Moves in circles
class MoveAngular: public Move{
public:
MoveAngular( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
protected:
int ang;
int dir;
};
//Moves down and slowly increases its positive dx speed
class MoveSwingRight: public Move{
public:
MoveSwingRight( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
};
//Move down and slowly increases its negative dx speed
class MoveSwingLeft: public Move{
public:
MoveSwingLeft( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
};
//Slowly increases its dy speed
class MoveSwingDown: public Move{
public:
MoveSwingDown( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
};
//Moves from side to side in a sine wave motion.
class MoveSine: public Move{
public:
MoveSine( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
protected:
int ang;
};
class MoveCircle_Player: public Move{
public:
MoveCircle_Player( double _dx, double _dy );
virtual void action( const vector< SpaceObject * > * fight, int x, int y, double & sdx, double & sdy );
protected:
int ang;
int find_circle;
};
#endif
|