2009年8月15日 星期六

建構子

class用建構子比較好,目的在初始化物件

bullet* p1=new bullet(10,x_int,y_int,+2);產生斜率+2,速度10,開始位置(
x_int,y_int)
這class可產生不同方向的子彈,用斜率運算來達成

bullet.h
-------------------------------------------------------------------------------------
#ifndef BULLET_H
#define BULLET_H

#include <QWidget>

class bullet : public QWidget
{
Q_OBJECT
public:
bullet(int v,int x,int y,int m,QWidget *parent = 0);//建構子,目的初始化物件

private:
int b_m;
int xx;
int yy;
int bullet_v;
public:
void set_bullet_x(int x1);
void set_bullet_y(int y1);
int get_bullet_x();
int get_bullet_y();
void path();
};

#endif // BULLET_H

bullet.cpp
------------------------------------------------------------------
//用這個class來放bullet的x,y座標
#include "bullet.h"

bullet::bullet(int v,int x,int y,int m,QWidget *parent)
: QWidget(parent)
{
bullet_v=v; //這設bulle速度,不能太快(不要超過目標y軸),擊中目標判斷會錯
xx=x; //初始化子彈x
yy=y; //初始化子彈y
b_m=m; //斜率
}
//設x
void bullet::set_bullet_x(int x1)//一次只能一個
{
this->xx=x1;
}
//設y
void bullet::set_bullet_y(int y1)
{
this->yy=y1;
}
//取得x
int bullet::get_bullet_x()
{
return this->xx;
}
//取得y
int bullet::get_bullet_y()
{
return this->yy;
}
void bullet::path()//enemy路徑運算
{
if(b_m!=0)
{
yy=-bullet_v+yy;
xx=-bullet_v/b_m+xx;
}


}

沒有留言: