C语言游戏开发丨源代码丨开发教程
编译环境
系 统:Windows11
编译器:Visual Studio 2022
图形库:EasyX
源代码
#include<easyx.h>
#include<stdio.h>
const int WIDTH = 400;
const int HEIGHT = 760;
const int INTERVAL = 48;IMAGE img_bk;
IMAGE img_item[3];void loadImg()
{loadimage(&img_bk, "images/bk.jpg", WIDTH, HEIGHT);loadimage(img_item + 0, "images/cao.png",48,48);loadimage(img_item + 1, "images/lingdang.png", 48, 48);loadimage(img_item + 2, "images/shu.png", 48, 48);
}int main()
{initgraph(WIDTH, HEIGHT,EW_SHOWCONSOLE);loadImg();int map[3][3] = {0};//初始化地图for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){map[r][c] = r+1; //1 2 3}}//打乱数组for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){int r1 = rand() % 3;int c1 = rand() % 3;int t = map[r1][c1];map[r1][c1] = map[r][c];map[r][c] = t;}}int store[7] = { 0 };int offsetX = (WIDTH - (2 * (48 + INTERVAL) + 48)) / 2;int offsetY = (HEIGHT - (2 * (48 + INTERVAL) + 48)) / 2;while (true){BeginBatchDraw();//绘制地图putimage(0, 0, &img_bk);//输出图片for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){if(map[r][c])putimage(offsetX + c * (48 + INTERVAL), offsetY + r * (48 + INTERVAL), img_item + (map[r][c]-1));}}//绘制下面for (int i = 0; i < 7; i++){if (store[i])putimage((i * 50)+26, 620, img_item + (store[i]-1));}EndBatchDraw();ExMessage msg = { 0 };if (peekmessage(&msg) && msg.message == WM_LBUTTONDOWN){//鼠标坐标判断for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){int x = offsetX + c * (48 + INTERVAL);int y = offsetY + r * (48 + INTERVAL);//printf("pos(%d,%d)\n", x, y);//判断鼠标是否点击了图片if (msg.x > x && msg.x < x + 48 && msg.y>y && msg.y < y + 48){//求出点击的图片对应的数组下标int col = (msg.x - offsetX) / (48 + INTERVAL);int row = (msg.y - offsetY) / (48 + INTERVAL);//printf("row:%d col:%d\n", row, col);//把点击的图片添加到下面for (int i = 0; i < 7; i++){if (store[i] == 0){store[i] = map[row][col];break;}}//如果下面有三个一样的就消除int cnt = 0;for (int i = 0; i < 7; i++){if (store[i] == map[row][col]){cnt++;}}if (cnt == 3){for (int i = 0; i < 7; i++){if (store[i] == map[row][col]){store[i] = 0;}}}//把点击的图片从map中删除map[row][col] = 0; }}}}}while (1);return 0;
}
总结
代码不难也不多,跟上线的游戏比还有很多可以完善优化的地方
如果有什么不懂的地方可以私信问我,素材可以自行准备哦,不想找的小伙伴可以访问我主页的粉丝君¥下载。
总的来说,能够自己摸透的话写出一个类似的游戏还是很容易的。
最后喜欢蜜糖的可以支持一下点赞关注我哟,今天就到这里啦,我们下次再见!
C语言游戏开发丨源代码丨开发教程相关推荐
- 100行源代码搞定用户态协议栈丨udp,icmp,arp协议的现实丨网络协议栈丨Linux服务器开发丨C++后端开发丨Linux后台开发
100行源代码搞定用户态协议栈 视频讲解如下,点击观看: 100行源代码搞定用户态协议栈丨udp,icmp,arp协议的现实丨网络协议栈丨Linux服务器开发丨C++后端开发丨Linux后台开发丨网络 ...
- 熟练掌握skynet,后端开发丨游戏开发轻松搞定丨多线程丨多进程
掌握skynet,后端开发原来如此简单 1. 多线程 2. 多进程 3. actor模型-skynet 4. csp模型 [技术分享篇]熟练掌握skynet,后端开发丨游戏开发轻松搞定丨多线程丨多进程 ...
- 【云风skynet】详解skynet的多核高并发编程丨actor模型丨游戏开发丨游戏服务端开发丨多线程丨Linux服务器开发丨后端开发
skynet中多核高并发编程给我们的启发 1. 多核并发编程 2. actor模型详解 3. 手撕一个万人同时在线游戏 视频讲解如下,点击观看: [云风skynet]详解skynet的多核高并发编程丨 ...
- easyx游戏编程:五子棋(C语言游戏开发)
easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...
- 纯c语言游戏引擎开发,C++ 写个游戏引擎—(基础篇) 1
目标:用 c++ 写个游戏引擎打基础 基本要求:有一定编程基础,对游戏编程有热情 开发平台:windows 开发工具:visual studio 2017 communicty 前言 今天 C++ 视 ...
- 红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理)丨epoll丨c/c++linux服务器开发丨linux后台开发
红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理) 视频讲解如下: 红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理)丨epoll丨c/c++linux服务器开 ...
- 全面了解C++后端开发技能树,C++后端开发面试技术点丨C/C++linux服务器开发丨linux后台开发
C++后端开发技能树,C++后端开发面试技术点 视频讲解如下: 全面了解C++后端开发技能树,C++后端开发面试技术点丨C/C++linux服务器开发丨linux后台开发丨网络编程丨面试经验 C/C+ ...
- 音视频开发成长之路—进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频
音视频开发成长之路-进阶之路3个重要知识点 视频讲解如下,点击观看: 音视频开发成长之路-进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频 音视频高级 ...
- Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++linux服务器开发
Nginx源码实现的细枝末节 11个阶段的实现 视频讲解如下,点击观看: Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++li ...
最新文章
- JQuery中2个等号与3个等号的区别
- Firefox v5 正式版
- java中que_重写java Eques()方法-不工作吗?
- Innodb中MySQL如何快速删除2T的大表
- java ranger rest_kafka ranger integration issuse
- Dapr + .NET Core实战(三)状态管理
- python的Web编程
- mysql pdo 查询一条数据,使用 PDO 关联查询 MySQL 数据
- 演练 小米商城 手机版块 0920
- 【Kafka】Kafka Consumer 管理 Offset 原理
- ArcGIS API for Silverlight 调用GP服务绘制等值面
- java开发特殊技能怎么填_【程序员简历】IT技能/编程技能应当怎么写?
- Java合并两个有序数组
- intel AVX / AVX2指令学习资源
- Insyde uefi 隐藏设置_UEFI+GPT安装Windows10
- 微信公众平台开发实例 php,php微信公众平台开发类实例,php公众平台实例_PHP教程...
- 【MTK驱动模块_4】battery--硬件原理介绍
- H3C交换机端口链路聚合
- 无线技术—安全认证技术
- MPI并行编程: 矩阵乘法,积分计算,PSPR排序