说明:整个工程文件已经上传至“下载频道”, 名字是“挖金子VC版源码”。不仅包括源代码,还有图形资源。最方便的是能直接编译、运行。

昨天讲解了游戏开始菜单的相关程序。今天开始讲游戏主逻辑。当用户点击了“开始”按钮后,进入游戏。需要做的工作是:加载地图,游戏上方的叉子开始摆动,同时检测用户按键,判断是否抓到物品等等。待俺一一道来。

地图信息包括:第几关,物品及其坐标,以前两关的地图数据为例:

*0
600
1 50 110
2 100 270
3 200 370
2 380 370
3 480 340
1 550 150
4 190 190
5 390 260
#
*1
1000
2 50 110
5 100 270
3 200 370
4 380 370
5 480 340
1 550 150
2 190 190
3 390 260
#

文件结构为:每一关以*和#作为起始/结束标志。*后面跟得是“第几关”(从0开始)。之后,是过关的金钱数量。再之后,每行表示一个物品,物品ID,横坐标,纵坐标。

物品ID从1开始,1至5表示5种物品,对应着大小不同的。这是一个设计的失误,不应该从1开始,应该从0开始。因为数组的下标要从0开始计算,有时候忘了减一,很久才能发现。这就是“代码的可维护性”。

struct GAMEOBJECT
{
    int id;
    int x;
    int y;
};

class GAMEMAP
{
public:
    //物品的ID,坐标
    struct GAMEOBJECT objectarray[30];

    int iObjectNum;

如上所示,读取地图文件后,将所有物品的ID,坐标放到这个数组中。

整个游戏的画面就是,遍历这个数组,按照物品ID,坐标,显示对应的图片。代码如下:

                for(i=0;i<gmap.iObjectNum;i++)
                {
                    if(gmap.objectarray[i].id<=0)
                    {
                        continue;
                    }
                    bObject.ShowNoBack(gmap.objectarray[i].x,
                                gmap.objectarray[i].y,
                                gmap.objectarray[i].id-1);
                
                }

在游戏过程中,只要修改这个数组中的坐标即可移动物品,只要清除一个元素的ID,即可消除一个物品。

还要绘制画面上方的图案,土壤的图案。上方的图案是一个简单的图片,土壤的图片是一个64*64的位图,循环排列而成。游戏中根据“第几关”选择不同的背景图案来显示。

bMap.ShowCenter(0);//游戏上方的图案
    bEarth.ShowLoop(0,80,GAMEWIDTH,GAMEHEIGHT,gmap.GetMatchNow());//土壤背景

画面上方有三个文字信息:当前金钱,目的金钱,剩余时间。都是简单的一个文本显示TextOut。

以上介绍了地图加载,物品的存储数组。

游戏的主过程中,还有叉子的绘制、摆动、伸缩,检测是否抓到物品(包括物品移动),检测用户按键,这些下回分解。大家可以直接在“CSDN下载频道”下载源工程“挖金子VC版源码”,其实,了无秘密。

怎样做小游戏挖金子(VC,源码3)相关推荐

  1. 怎样做小游戏挖金子(VC,源码1)

    <挖金子>这个游戏,以前就玩过,网上见到是FLASH做的.FLASH做的游戏,很棒,足以让人对脚本语言刮目相看.最近我用vc做了一个,基本实现了功能.但代码写得粗糙,有几处很笨拙.我还是想 ...

  2. 怎样做小游戏挖金子(VC,源码2)

    先别急着看源码,首先要解决的问题是程序框架. VC只是一个开发环境,支持的是C++.Windows下的程序,当然是用Windows API(Application Programming Interf ...

  3. java做小游戏扫雷(附源码)

    下载解压即可玩:扫雷 项目代码下载:java代码 目录 图片 怎么自己也能做 代码细节 感受 全部代码 GameWin.java类 : MapBottom.java类: GameUtil.java类: ...

  4. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  5. “限时分享“ 本地80个小游戏 HTML+CSS+JS源码分享

    开源项目集合 1. "限时分享" 本地80个小游戏 HTML+CSS+JS源码分享 2. "限时分享" 别错过了,最全的微信小程序源码收集分享 里面有80款小游 ...

  6. c++编写手机小游戏代码_经典小游戏大集合(C++ 源码)

    [实例简介] 五子棋 贪吃蛇 俄罗斯方块 黑白棋 连连看 推箱子 扫雷等7个小游戏 C++源码 VC6.0 下编译运行. [实例截图] [核心代码] 经典小游戏大集合(C源码) └── 经典小游戏大集 ...

  7. 打砖块小游戏php程序,javascript实现打砖块小游戏(附完整源码)

    小时候玩一天的打砖块小游戏,附完整源码 在?给个赞? 实现如图 需求分析 1.小球在触碰到大盒子上.左.右边框,以及滑块后沿另一方向反弹,在碰到底边框后游戏结束: 2.小球在触碰到方块之后,方块消失: ...

  8. 用Python做雷霆战机小游戏【附素材+源码】

    前言 嗨嗨,我是小圆 最近很多朋友都在问我要一些游戏的代码 所以这篇文章就出来了 [想一键获取素材和源码的,点击文章末尾名片] 模块准备 import pygame, os import time i ...

  9. 用Python做雷霆战机小游戏【赠素材+源码】

    前言 嗨嗨,我是小圆 最近很多朋友都在问我要一些游戏的代码 所以这篇文章就出来了 [想一键获取素材和源码的,点击文章末尾名片] 模块准备 import pygame, os import time i ...

  10. H5——连连看小游戏实现思路及源码

    部门要求推广新产品用连连看小游戏的方式, 设计那边UI还没有排期,先撸个功能demo,正好记录一下: 连连看都玩过,程序的关键在于判断连续点击的两张图片是否能够消除,两个图片消除的条件有两个: 图片相 ...

最新文章

  1. 第四节、逆矩阵与转置矩阵
  2. STL之list学习(2)(list代码实现)(只剩最后一步,迭代器升级!!)
  3. 全网最详系列教程-nacos配置中心详解-NameSpace、Group、DataID
  4. 9012年大厂面试题合集:Java技术栈为什么竞争越来越激烈?
  5. WinJS实用开发技巧(4):Appbar中使用自定义图片
  6. shell之a+b求和l脚本的三种写法
  7. linux加密框架 crypto 通用算法注册接口__crypto_register_alg注册流程
  8. 实现机器学习的循序渐进指南VII——Blending Stacking
  9. geth+remix+metamask 实现私有链智能合约部署
  10. Python强化训练笔记(二)——元组元素的命名
  11. Linux 平台下 Tomcat 的安装与优化
  12. java2实用教程 第四版 上机实践4代码_Java2实用教程实验指导模版代码
  13. VS2013 产品密钥 – 所有版本-亲试,好使!!
  14. QQ空间相册批量下载qq相册批量下载专家比骨头小林还厉害
  15. 数字图像处理第五次作业:描述FFT的平移、缩放、旋转的性质。
  16. input标签的type属性汇总
  17. 你怎么保存微博中喜欢的视频
  18. HTML5期末大作业:游戏设计网站设计——游戏介绍(5页) 大学生游戏网页设计作业模板下载 网游网页设计作业成品 静态HTML手游网页制作下载_网页设计代码
  19. python设置word背景色_Java 给Word不同页面设置不同背景
  20. 2.3 OSI参考模型

热门文章

  1. U盘PE安装原版Win10系统
  2. 计算机没有显示光盘图标,电脑光驱图标不见了怎么办
  3. 【Sencha Toucha】Sencha Touch ExtJs 给 Button 添加图片
  4. 使用GDAL读取SRTM格式高程数据
  5. 医疗实施-常用的英文简称
  6. 互联网黑产:那些职业羊毛党到底如何月赚几十万?
  7. 2022微服务面试题 最新50道题(含答案解析)
  8. 运筹学_单纯形法_week3
  9. 视频教程-2020软考数据库系统工程师-基础知识培训视频-软考
  10. Kaggle——TMDB 5000 Movie Dataset电影数据分析