C/C++项目:4399小游戏黄金矿工编译教程
《黄金矿工中文版》是一款休闲益智小游戏,游戏中你需要看准时机出钩子勾取金子或者砖石来获得金钱的累加,达到一定的金钱数才能够闯关成功,游戏十分经典,强烈推荐大家学会编写这款游戏,休闲时没网也能自己玩哦。
黄金矿工道具说明:
金块:按大小区分,越大越值钱
石头:笨重且不值钱的障碍物
钻石:值钱的小石头
小猪:移动迅速的地下生物,能被钩子抓住
炸药桶:被触碰到就会爆炸的可怕道具
骨头:不值钱的地下道具
布袋:里面装着随机道具的袋子
炸药:按↑ 可以使用,炸掉钩子上的物品,快速收回钩子
生力药剂:加快你收回钩子的速度,一局内有效
石头收藏书:提高你收集到的石头价值,一局内有效
钻石收藏书:你搜集到的钻石将会更值钱,一局内有效
幸运草:可以从布袋中获得更好的道具,一局内有效
今天我就用C语言带大家一步步去完成好玩有趣学会没网也能打开的黄金矿工小游戏。
PS:要安装easyx图形库哦 #include<easyx.h> 开发工具为VS2013
在此之前呢,和大家说明一下,因为这是一个比较大的项目了,所以展示所有代码会有些困难,我裁剪了主要的大部分代码,主要目的是让大家明白实现这个项目的逻辑思路,希望大家可以理解,完整代码/编译器/图形库在文章最下方获取哦!
正片开始:
第一步: 打开vs2013,创建一个项目,并将准备好的素材资源放到CPP同级目录下(素材可以在文章最下方领取),如图:
第二步:创建窗口,加上背景:
int main()
{//创建一个不一样得窗口,图形窗口initgraph(1080, 640,EW_SHOWCONSOLE);//设置整个窗口的背景颜色 setbkcolor(RGB(45, 121, 157));//清楚屏幕cleardevice();initData();BeginBatchDraw();while (true){cleardevice();gameDraw();hookRock(0.9);hookLongAndshort(5);FlushBatchDraw();}EndBatchDraw();getchar();return 0;
}
第三步:用枚举函数设置钩子,设置老头位置:
enum Index
{i_gold = 1,i_money = 3,i_roleDwon = 5,i_roleUp =7,i_stone = 9,i_bk = 10
};
enum Dir
{LEFT,RIGHT
};
enum State
{S_Normal,S_Long,S_Short,
};
//角色位置(老头)
struct Role
{int x;int y;int w;int h;
}role;
// 钩子
struct Hook
{int x;int y;int endx;int endy;int len;double angle; //钩子的角度Dir dir;int vx;int vy;State state;
}hook;
第四步:初始化数据,绘制老头和钩子:
//初始化数据
void initData()
{for (int i = 0; i < 10; i++){WCHAR fileName[20] = { 0 };wsprintf(fileName, _T("./images/%d.jpg"), i);loadimage(img + i, fileName);}loadimage(img + 10, _T("./images/bk.jpg"), getwidth(), getheight() - 120);//加载图片到图片变量中去//绘制老头子role.w = (img + i_roleUp)->getwidth(); //140;role.h = img[i_roleUp].getheight(); //120;role.x = (getwidth() - role.w) / 2;role.y = 0;//绘制钩子hookhook.x = role.x + 47;hook.y = role.y + 100;hook.len = 50;hook.endx = hook.x;hook.endy = hook.y + hook.len;hook.angle = 0.0;hook.dir = RIGHT;hook.vx = 0;hook.vy = 0;hook.state = S_Normal;
}
第五步:让钩子动起来:
//让钩子动起来
void hookRock(double inc)
{if (hook.state != S_NORMAL)return;if (hook.dir == RIGHT){hook.angle += inc;}else{hook.angle -= inc;}if (hook.angle >= 81){hook.dir = LEFT;}else if(hook.angle <= -81){hook.dir = RIGHT;}//求当前endx,endy的位置hook.endx = hook.x + sin(PI/180* hook.angle)* hook.len;hook.endy = hook.y + cos(PI/180 * hook.angle)* hook.len;}
void hookLongAndshort(int speed)
{if (GetAsyncKeyState(VK_SPACE) && hook.state == S_Normal){hook.state = S_Long;hook.vx = sin(PI / 180 * hook.angle) * speed;hook.vy = cos(PI / 180 * hook.angle) * speed;}if (hook.state == S_Long){hook.endx += hook.vx;hook.endy += hook.vy;}else if (hook.state == S_Short){hook.endx -= hook.vx;hook.endy -= hook.vy;}if (hook.endx <= 0 || hook.endx >= getwidth() || hook.endy >= getheight()){hook.state = S_Short;}if (distance(hook)<= hook.len){hook.state = S_Normal;}
}
好啦,重要的基础代码就这些~需要完整源码对照的同学可以在文章末领取,黄金矿工教程就到此结束啦!
写在最后
今天就到这里了哈~
后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以给我留言。
不管你是转行也好,初学也罢,进阶也可,如果你想学编程~
【值得关注】我的【C/C++源码资料学习群】点击进入
C/C++项目:4399小游戏黄金矿工编译教程相关推荐
- 【Java基础项目】经典小游戏黄金矿工制作
Java初学者的小伙伴们,相信大家肯定缺少很多的练手项目吧!今天就给大家推荐一款特别好上手的一个Java小游戏--黄金矿工. 大家听到这个名字的时候,童年的回忆肯定一下子,涌上心头,那如果让大家制作一 ...
- java小游戏-java小游戏-黄金矿工
java小游戏-java小游戏-黄金矿工 1 窗口绘制 2 绘制图片 3 红线绘制 4 红线摇摆 5 红线抓取 6 创建金块 7 双缓存技术 8 抓取判断 9 抓取返回 10 多个金块 11 Bug金 ...
- Java练手小游戏---黄金矿工
你玩过4399曾经最火的黄金矿工小游戏吗,黄金矿工小游戏是一款休闲娱乐的一个挖宝游戏,在游戏中地下会有许多的宝藏,你得想办法把它们都挖出来,作为矿工的你,对你来说是轻车熟路的,能不能挖到宝,看你抓取的 ...
- 用Java写个小游戏--黄金矿工代码实现
黄金矿工 项目结构 前期准备 Stone类 Gold类(包含Gold类,GoldMini类,GoldPlus类) GameWin类 Line类 Parent类 Sky类 项目结构 GameWin类,游 ...
- JAVA小游戏——黄金矿工
Day 1:窗口绘制并导入背景图片 public class mygame extends JFrame {bj b=new bj();void launch() throws Interrupted ...
- 25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...
- 4399小游戏童年的乐趣,python爬取4399全站小游戏
大家好,我是辣条. 前言 2021年已到尾巴尖尖了. 今天照镜子,看着镜子中的自己,发现还是跟年轻时一样的"帅",看到头部的时候又发现相比半个月之前的发际线,它好像又往上移了一点点 ...
- 怎么把4399小游戏的代码_25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...
- 4399小游戏flash插件怎么下载_Flash即将关闭,但这个小游戏平台,或许可以帮你找回4399的回忆...
今年注定是与众不同的一年,TCL和黑莓停止了合作关系.Windows 7失去了微软官方技术支持,而我们也将送走一位真正意义上的互联网老玩家-Flash. 在2017年Adobe就曾宣布,将于2020年 ...
最新文章
- 论文阅读:FFDNet:Toward a Fast and Flexible Solution for CNN based Image Denoising
- 图像分类matlab结果,libsvm图像二分类后,分类的图像结果如何显示?
- Shell脚本中的并发
- 关于ospf区域认证以及虚链路之间的配置问题
- UA MATH574M 统计学习II 二元分类例子与高维问题
- Spring注解之@Transactional对于事务异常的处理
- sqlplus连接远程数据库
- mac 设计表结构_模具设计丨问题点检表、全套标准件结构分布,值得转发
- 分享Spring Cloud分布式微服务架构图
- C语言学习笔记--数组参数和指针参数
- next主题设定代码高亮格式
- python内容限制_Python --类,实例和访问限制
- ceph--磁盘和rbd、rados性能测试工具和方法
- PMP项目管理培训课程
- Python获取打印机读数(东芝泰格)
- 编程实现恩格玛加密机(C++)
- 前端面试八股文(超详细)
- 爱快路由安装mysql_ESXi安装爱快iKuai OS路由(图文教程)
- 终于来了!新版本M4压不住枪了?刺激战场雪地地图最强灵敏度
- DSConv:Efficient convolution operator