序
交换一个苹果,得到一个苹果;交换一种思想,得到一种思想。选择与你才干,性格不同的人,他可以弥补你的缺陷。
嗨!这里是狐狸~~
最近有点网抑云了,脑子很乱,不晓得想些什么,到了年底感觉什么都没做显得格外的浮躁,每晚睡觉时都有万根针在扎似的,时间又是一年去,时间的年轮又转了一圈,不知道大家有没有和我相似的感受呢,扯远了,回归正题,今天来和大家分享的项目是《疯狂赛车》
当然啦,我们今天做的是个简易版的,也不是3d的,主要是希望大家可以更容易的理解里面的逻辑关系,好了,先给大家展示一下我们的游戏界面吧
看起来还是比较粗糙的,但这都不是问题,我说过很多次了,我只教方法,至于做成什么样还得看自己的审美以及能力,OK,接下来来教大家怎么具体的实现这个游戏项目。
具体思路
1、图形基础
1.1 如何显示一张图片?
1.1.1 起名字
类型:IMAGE
1.1.2 所以要加载图片
loadimage(&图片名字,"图片的路径");
1.1.3 显示图片:putimage(int x,int y,那张图片);
1.2 创建图形窗口
1.2.1 创建一个多大的窗口
initgraph(int w,int h);
1.2.2 关闭窗口
closegraph();
1.3 透明贴图技术
1.3.1 认识一下背景图和掩码图
1.3.2 采用SRCAND 方式掩码图
putimage(int x,int y,那张图片,SRCAND);
1.3.3 采用SRCPAINT 方式贴背景图
putimage(int x,int y,那张图片,SRCPAINT);
2、绘制赛道
2.1设置线条样式
setlinestyle(PS_SOLID, 3);
2.2设置线条的颜色
setlinecolor(BLACK);
2.3画赛道中心线
setlinecolor(WHITE);
line(IMG_SIZE * 2, 0, IMG_SIZE * 2, IMG_SIZE * ROW);
3、绘制赛车
3.1 绘制玩家赛车
drawImg(player.x, player.y, img_car + player.i);
3.2绘制敌车
for (size_t i = 0; i < 3; i++){
drawImg(enemy[i].x, enemy[i].y, img_car + enemy[i].i);
}
4、赛车的移动
键盘控制赛车的移动
if (GetAsyncKeyState(VK_UP) && player.y >= 0)
{
player.y -= player.speed;
}
if (GetAsyncKeyState(VK_DOWN) && player.y + 60 <= getheight())
{
player.y += player.speed;
}
if (GetAsyncKeyState(VK_LEFT) && player.x > IMG_SIZE)
{
player.x -= player.speed;
}
if (GetAsyncKeyState(VK_RIGHT) && player.x + 40 <= IMG_SIZE * 3)
{
pla