android开发——推箱子小游戏(前序)

时间:2024-04-08 15:39:02

一、前言

这是本人在CSDN社区发布的第一篇文章,主要有两个目的:
一是方便我后期回忆一些知识点。
二是将自己所掌握的东西(代码也好,思路也罢)分享给需要的人。
本章不写任何逻辑代码,
只对本项目做一个介绍、需求分析、原理分析
本文其他的可以不看,但是我个人建议看一下后面的原理分析,有助于理解逻辑

本人并非什么大神,文章有什么不正确的地方,还望各位大神不吝赐教,不胜感激!

二、项目介绍

开发语言:java
开发环境:Android Studio
推箱子 一款非常经典的小游戏,玩法简单,却考验人的逻辑思维。
我们接下来要做的就是从无到有的开发出一款属于自己的推箱子游戏

项目需求分析
三个基础界面
1、开始游戏界面
2、游戏关卡选择界面
3、开始游戏界面

三种主要逻辑代码
1、地图加载
2、人物上下左右
3、通关监听

三、原理分析

看完了基本的项目介绍,接下来对推箱子的实现原理分析一下。
我个人认为最关键的点在于:要清楚地图并非是一张的、整体的图。地图上的所有东西都是由一个个独立的块组成的,例如:墙、箱子、人物等,都是一个个独立的存在,它们按一定的位置放置,组成了一张看似完整的地图。
再准确的说,地图界面实际上是一个以单位正方形组成的表格,然后表格上的每个正方形都放了一张图片,所以就形成了我们眼睛所看到的一整张地图。
这就是我们所说的二维数组,地图实际上就是一组二维数组数据,地图上的每一个物体都具有一个二维坐标。
说完画地图的原理后,再想想移动人物、推动箱子的本质原理。我们点击移动按钮的时候真的是人物在移动吗?
事实上并不是的,上面讲到了地图的原理,很容易就能知道,其实人物并没有移动,只是地图(二维数组)上加载的图片数据变了,例如,假设当前加载人物图片的数组下标为(5,6),其中5为列数,6为行数,当我们想要人物左移的时候,只需要把(5,6)的图片数据改为“路”的图片,把(5,5)的图片数据改为人物的图片,然后刷新,重新渲染就OK了。
由于程序执行的速度非常快,所以人眼看起来是人物在移动,但实际上是那个位置的数据改变了而已。
由于本人水平有限,讲得也许并不是那么得简明清楚,但情况大概就这么回事儿。希望看了之后能对你有所帮助,举一反三。

四、最后

下一篇才是真正的推箱子实现文章,希望本章的肺腑之言(简称:肺话)能让你对与这个游戏的代码实现有一定的了解,特别是原理那一块。
图片资源文件如果需要的话,可以在评论留下你的邮箱,后期如果人多的话,我再上传百度云吧。下面贴张成品图,有助于理解原理。
android开发——推箱子小游戏(前序)