用C语法和EasyX库制作飞机大战

准备工作

想制作一个像这样的飞机大战,需要安装一个EasyX库

https://easyx.cn/easyx

由于我没有图片素材,所以素材都是网上找的。(掩码图)也就是黑白图,都是我自己用ps制作的,因为比较粗糙,所以在绘制图片时我会贴两次来去除阴影。如果想要更好的效果可以自己学习一下制作掩码图。在贴图时也必须先贴掩码图。

https://so.csdn.net/so/search?q=%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E6%8E%A9%E7%A0%81%E5%9B%BE&t=&u=&urw=

好像除了使用了bool类型是C++的类型,其他语法基本都是C语言的。但是想要运行还是需要使用.cpp文件

然后就是loadimage函数报错问题。解决方法:打开项目->属性->高级->字符集的unicode改为多字节字符集->确定

最后就是itoa函数的报警告。是因为VS认为itoa是一个不安全的函数,在Debug版本去运行可以通过,但是在Release版本就过不去。怎么解决我也是不知道,希望有知道的大佬也能告诉我一下。

源码

由于源码太长了然后素材也懒得贴出来,所以我都放在我的gitee上了,写的可能比较粗糙但是能跑就行,哈哈哈,想要源码的朋友可以直接点链接领取。

https://gitee.com/junjiemayun/practice/tree/master/game(%E9%A3%9E%E6%9C%BA%E5%A4%A7%E6%88%98)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言结合EasyX可以实现飞机大战的双人模式。下面是一个简单的示例代码: ```c #include <graphics.h> #include <conio.h> #define WIDTH 480 #define HEIGHT 600 // 玩家1飞机的结构体 struct Player1Plane { int x; // x坐标 int y; // y坐标 }; // 玩家2飞机的结构体 struct Player2Plane { int x; // x坐标 int y; // y坐标 }; // 初始化玩家1飞机 void initPlayer1Plane(Player1Plane* plane) { plane->x = WIDTH / 2 - 30; plane->y = HEIGHT - 100; } // 初始化玩家2飞机 void initPlayer2Plane(Player2Plane* plane) { plane->x = WIDTH / 2 + 30; plane->y = HEIGHT - 100; } // 绘制飞机 void drawPlane(int x, int y) { setfillcolor(YELLOW); fillrectangle(x - 20, y, x + 20, y + 40); } int main() { initgraph(WIDTH, HEIGHT); // 初始化形窗口 Player1Plane player1; Player2Plane player2; initPlayer1Plane(&player1); initPlayer2Plane(&player2); while (true) { cleardevice(); // 清空屏幕 if (_kbhit()) { char ch = _getch(); if (ch == 'a') { player1.x -= 10; // 玩家1向左移动 } else if (ch == 'd') { player1.x += 10; // 玩家1向右移动 } else if (ch == 'j') { player2.x -= 10; // 玩家2向左移动 } else if (ch == 'l') { player2.x += 10; // 玩家2向右移动 } } drawPlane(player1.x, player1.y); // 绘制玩家1飞机 drawPlane(player2.x, player2.y); // 绘制玩家2飞机 Sleep(30); // 控制刷新速度 } closegraph(); // 关闭形窗口 return 0; } ``` 在此示例中,我们使用EasyX来创建一个窗口,然后通过键盘输入控制玩家1和玩家2的飞机移动。玩家1使用键盘的 'a' 和 'd' 键来左右移动飞机,玩家2使用键盘的 'j' 和 'l' 键来左右移动飞机。飞机的绘制使用了`drawPlane`函数,你可以根据自己的需求进行自定义。 希望这个示例对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值