如何用C语言实现黄金矿工项目

这篇文章主要为大家详细介绍了c语言实现——《黄金矿工项目》,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下!
游戏介绍:
在规定的时间内得到规定的金钱时即可。玩法非常简单,按“↓”键开使捞金子,如有炸弹,按“↑”键放炸弹,买东西点鼠标左键。不过本游戏之设计到钩子勾金子的程度,后面的关卡大家可以自行设计,相信能够设计金子了,钻石的话同理还是非常简单的。
本项目编译环境:vs2019/vs2013;
插件:图形库插件easyx,涉及图片素材可以自行百度找也可以关注文末领取;
配套讲解教程:黄金矿工游戏教程——哔哩哔哩
源代码示例:
                                                                                                                                                                                                                                                                                                                                                                                    #include#include#include#define width 1080#define height 640#define pi 3.1415#define max_angle 80enum index{ i_gold = 1, i_money = 3, i_roledown = 5, i_roleup = 7, i_stone = 9};/*钩子摆动状态,摆动,伸长,缩短,停止*/enum attr{ left, right, m_normal, m_long, m_short};struct role{ int x; int y; int width; int height; int coin; //总金钱};struct hook{ int x; int y; int endx; int endy; int len;//钩子长度 double angle;//钩子当前角度 int dir;//钩子摆动方向,左,右 int vx;//速度变化量 int vy; int state;//当前状态};struct role role;struct hook hook;struct mine//物品{ int x; int y; int size; int type; bool flag; int gold;};struct mine mine[10];//把图片加载进程序 image img[11];void loadimg(){ for (int i = 0; i max_angle) { hook.dir = left; } else if (hook.angle<-max_angle) { hook.dir = right; } hook.endx = hook.x + sin(pi / 180 * hook.angle)*hook.len; hook.endy = hook.y + cos(pi / 180 * hook.angle)*hook.len; } }double distance(hook h){ return sqrt((double)(hook.endx - hook.x)*(hook.endx - hook.x) + (hook.endy - hook.y)*(hook.endy - hook.y));}void keycontrol(int speed){ if (getasynckeystate(vk_space))//virtual key { hook.state = m_long; hook.vx = sin(pi / 180 * hook.angle)*speed; hook.vy = cos(pi / 180 * hook.angle)*speed; } if (hook.state == m_long) { hook.endx += hook.vx; hook.endy += hook.vy; } else if (hook.state==m_short) { hook.endx -= hook.vx; hook.endy -= hook.vy; if (distance(hook)<=hook.len) { hook.state =m_normal; } } //碰到边界反回 if (hook.endxwidth || hook.endy height) { hook.state = m_short; }}int main(){ //控制台窗口(只能用来输出文字) //我们需要能够画图的窗口 initgraph(width, height, showconsole); gameinit(); while (1) { //双缓冲绘图,防止闪屏 beginbatchdraw(); gamedraw(); endbatchdraw(); hookrock(); keycontrol(5); } return 0;}

2022年我国人工智能产业规模将逼近300亿美元
中国移动雄安产业研究院5G+AI开启智慧城市
机器人故障分析和解决方法
酷冷至尊MM710鼠标评测 可以说是当今最轻的游戏鼠标
如何通过android应用控制2个输出的设备
如何用C语言实现黄金矿工项目
臭氧传感器安装四大注意事项
买液晶显示器最要注意的问题
集团电话的普通话机数
探讨物联网设备安全的重要性
M2M发展的概述,它与物联网的区别是什么
OpenHarmony基础
橙群微电子发布世界上最小的WLCSP封装蓝牙SoC
FPGA从Xilinx 的7系列学起(9)
电力负荷等级
苹果今日起正式在华开售白色iPhone 4
IBM CEO Arvind Krishna 在 2023 世界互联网大会乌镇峰会的致辞:与各方密切合作,共建开放 AI 生态
如何读取电容值?如何读取写在电容器上的电容器值?
PoE是如何工作的 PoE支持哪类设备
比亚迪挑战宁德时代领先地位 LFP电池市场份额加大