win32游戏编程——贪吃蛇游戏

1.写此贴的意图

        刚开始学c++,编的是win32 console application,在黑框框里进行输入和输出,觉得和自己想象的程序差好多,有点失望,后来接触到win32程序,感觉和我们平时见到的程序差不多,然后想尝试去编一些简单的游戏,参考了《Windows游戏编程大师技巧》(作者Andre LaMothe)这本书,编了自己的贪吃蛇小游戏,见图1,在编程过程中发现其实核心就是去绘制图形和让图形去移动,图形移动其实就是绘图,只不过相对于之前的图形坐标改变,加上刷新的速度(至少一秒钟30帧)很快,人眼看起来就是很自然的移动。此处分享我学会的如何在win32程序下绘制多边形并移动它.



                                                                                      图一

2、言归正传,第一步:需要创建一个win32程序,步骤参照(http://blog.csdn.net/u010534406/article/details/49817575)。

                          第二步建立一个多边形类:

class polygon{
public:
int state;//if state=1,the polygon has been initialized,and normal;state=0,no ini
int num;//the NO. of edges
POINT *points;//顶点
int vx,vy;//速度
POINT mid;//mid point;
polygon(POINT*p=NULL,int v1=0,int v2=0,int no=3);
void draw_polygon();
void move_poly();
~polygon (){
points=NULL;
}
};
polygon::polygon (POINT*p,int v1,int v2,int no){
num=no;
vx=v1;
vy=v2;
mid.x=0;
mid.y=0;
points=p;
if(points!=NULL)state=1; 
}


void polygon ::draw_polygon (){

if(state==1) Polygon (g_hdc,points,num);
}

void polygon ::move_poly (){
   if(state){
mid.x+=vx;
mid.y+=vy;
//make sure the poly is in the screeen
if(mid.x>590) mid.x=0;
if(mid.x<0) mid.x=590;
if(mid.y>410) mid.y=0;
if(mid.y<0) mid.y=410;
for(int index=0;index<num;index++){
points[index].x =mid.x

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值