只要不幸无法战胜信念,希望之光就会驱散绝望的阴云。 下面是小编为大家搜索整理的用C语言编写简单2D游戏的方法。 希望能够对大家有所帮助! 更多精彩内容,请及时关注我们的应届毕业生考试网站!
为了用鼠标控制飞行器飞行,当鼠标移动时,获取鼠标的X坐标,在消息处理函数中添加如下代码:
x = LOWORD(lParam);
如果鼠标的X坐标大于窗口临界值,则X等于临界值。 如果鼠标的X坐标小于0,则将鼠标X设置为0,并添加以下代码:
如果(x > 730)
x = 730;
别的
如果(x < 0)
x = 0;
同理,获取鼠标的Y坐标,添加如下代码:
y = HIWORD(lParam);
如果(y > 480)
y = 480;
否则如果(y < 0)
y = 0;
确定飞行器的移动方向并使其与鼠标的移动方向一致。 也就是飞机随着鼠标的移动而移动c语言制作游戏,并绘制地图。 添加代码如下:
if(现在X < x)
现在X += 20;
if(现在X > x)
现在X = x;
别的
现在X-=20;
if(现在X < x)
现在X = x;
if(现在Y < y)
现在Y += 20;
如果(现在Y>y)
现在Y = y;
别的
现在Y -= 20;
if(现在Y < y)
现在Y = y;
SelectObject(bufdc,平面);
BitBlt(mdc,nowX,nowY,70,70,bufdc,0,70,SRCAND);
BitBlt(mdc,nowX,nowY,70,70,bufdc,0,0,SRCPAINT);
3.2.2 计算机角色动画
为了实现游戏画面的透明效果,加载游戏的石头位图(“Stone.bmp”)
Stone=(HBITMAP)LoadImage(NULL,"Stone.bmp",IMAGE_BITMAP,100,200,LR_LOADFROMFILE);
其次,将前景位图的遮罩图像部分与背景图像进行“与”运算,添加以下代码:
SelectObject(bufdc,Stone);
BitBlt(mdc,Sx,Sy,100,100,bufdc,0,100,SRCAND);
将“AND”运算的结果与前景图像进行“OR”运算,添加以下代码:
BitBlt(mdc,Sx,Sy,100,100,bufdc,0,0,SRCPAINT);
为了实现游戏中落石的效果游戏评测,定义一个速度VY,计算出Y轴坐标,继续往下粘贴,添加如下代码:
vy=15;
Sy+=vy;
为了实现多个石子落下的效果,定义石子坐标Sx1、Sx2、Sx3、Sy1、Sy2、Sy3,分别代表四个落子的坐标值。 它们被加载、透明和删除,如上面的代码所示。
3.2.3 星际迷航背景动画
为了实现背景动画的滚动效果,设置一个间隔tPre和图片宽度W代码实现如下
BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);
tPre = GetTickCount();
w+=10;
如果(w>=600)
w = 0;
其中,tPre获取的是时间,图片的Y坐标随着时间的推移不断增加10。 如果整个图片(图片尺寸为800*600)> 600,图片将再次滚动。
4. 物理现象
为了实现整个游戏的碰撞效果的物理现象,首先加载游戏的石头位图
baozha0=(HBITMAP)LoadImage(NULL,"baozha0.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);
baozha1=(HBITMAP)LoadImage(NULL,"baozha1.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);
baozha2=(HBITMAP)LoadImage(NULL,"baozha2.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);
baozha3=(HBITMAP)LoadImage(NULL,"baozha3.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);
对于碰撞效果,采用临界值碰撞来实现。 Sx1和Sy1是石头1的坐标,X和Y是鼠标的坐标。 当平面坐标和石头坐标达到临界值时,就会发生碰撞。 相关代码如下:
SelectObject(bufdc,baozha0);
if(((Sx1x))&&((Sy1y)))
BitBlt(mdc,Sx1-50,Sy1-70,316,316,bufdc,0,316,SRCAND);
BitBlt(mdc,Sx1-50,Sy1-70,316,316,bufdc,0,0,SRCPAINT);
删除DC(bufdc);
}}
5 实验结果与分析
该实验实现了游戏屏幕映射、游戏输入消息处理、游戏动画技术和游戏物理现象的设计原理。 优点:初步实现了游戏画面绘制与贴图、游戏输入消息处理、游戏动画技巧、游戏物理现象设计等基本功能。 缺点:由于时间和数据结构算法没学好,导致子弹和石头的碰撞效果没有实现,爆炸效果不真实,纹理效果不好。
六,结论
这个程序的结构仍然很笨拙,有很多不尽如人意的地方c语言制作游戏,但是它实现了游戏画面渲染、游戏输入消息处理、游戏动画技术、游戏物理现象的设计原则。 整个游戏虽然不能像红白机那样内容丰富,但未来会设计得简洁大方数据报告,这样才能做成《雷霆》那样精彩的飞行射击游戏。
【如何用C语言编写简单的2D游戏】相关文章:
1.C语言链接编写
2、C语言编写程序的优点
3.HashTable的C语言简单实现
4、C语言如何输出菱形
5、C语言中reduce方法的应用
6.C语言冒泡排序方法
7、C语言高效编程的方法
8. C语言内存方法指导
9.C语言数组方法