Java PinBall 简单弹球小游戏【4】碰撞检测及边界检测

4.游戏中的碰撞检测

(1)弹球游戏中的边界碰撞检测。

这个原理大家应该很容易就想到了,用游戏元素的坐标值与整场景的大小来比较就可以判断出元素是否碰到边界了,为了丰富游戏框架,我制作了一个游戏边界碰撞检测器类。大家可以参考类:BorderCrossing,代码我就不贴到这里了。

(2)游戏中的元素相互之间的碰撞检测。

这里的碰撞包括但不限于以下几种:矩形之间的碰撞,圆形之间的碰撞,象素间的碰撞等,目前我们只需要矩形之间的碰撞检测即可,矩形和圆之间的碰撞检测的原理有些相同。

一般我们只是检测物体之间是否有碰撞,这种方法需要判断的地方比较多,如果我们只判断物体之间没有碰撞,相对来说就简单些了,你可以想象一下两个方形没有碰撞的时候有几种情况?具体代码这里我就不贴出来了,可以查看代码仓库中的:SpriteCrossing,这是一个碰撞检测器,包括了:两种矩形碰撞一种圆形碰撞检测方法,但这二种方法在元素超多的情况下可能会产生混乱,后继会优化排察原因。

弹球游戏中的pinballGameLogic()方法为游戏中的逻辑判断方法,这个方法中使用了边界与物体碰撞检测类,亲们可以研究一下。

具体可以查看游戏框架源码,我已上传git.osc

传送门:

http://git.oschina.net/J_Sky/HEHEJava2DGame

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

堆叠大陆 Stacklands for Mac(卡牌游戏)v1.3.4中文原生版

堆叠大陆(Stacklands)forMac是一款策略卡牌游戏,由ThunderboxEntertainment开发。在这个游戏中,玩家需要构建自己的卡组并与其他玩家进行对战。堆叠大陆的游戏玩法有两个主要元素:卡片和地图。每张卡片代表一个单位,如士兵、法师

SFML从入门到放弃(3) 视角和碰撞检测

SFML从入门到放弃(3)视角和碰撞检测视角window.draw();所画出的对象是在世界坐标的绝对位置。视角可以选定在窗口中显示世界坐标下的的哪一个区域。sf::Viewinit_view(){sf::Viewvi(sf::Vector2f(0,0),sf

Protobuf在微信小游戏开发中的使用技巧

微信小游戏发布后,许多HTML5游戏开发者希望把现有的HTML5游戏迁移到微信小游戏中,但由于一些技术上的问题导致进程卡壳。通过梳理Egret社区、白鹭小游戏开发技术讨论群等途径的反馈后发现,有不少开发者遇到的难题在于「如何在微信小游戏中使用Protobuf」。白鹭引擎架构师王泽在近期发布了一个开源项目protobufegret,提供了一个可

JAVA游戏编程学习笔记(四)Java PinBall 简单弹球小游戏【1】

之前写了一个非常简单的Java2D小游戏底层框架,为了把这个游戏框架丰富起来,这阵子需要实际完成几个小游戏代码,这样才能在实际中检验游戏框架使用性!先来一个简单的小游戏:JavaPinBall简单弹球小游戏 先上图!!(http://static.oschina.net/uploads/space/2015/1110/202955_

C++ MFC棋牌类小游戏day1

好用没用过C做一个完整一点的东西了,今天开始希望靠我这点微薄的技术来完成这个小游戏。我现在的水平应该算是菜鸟中的战斗鸡了,所以又很多东西在设计和技术方面肯定会有很大的缺陷,我做这个小游戏的目的单纯为了证明一下我到底还是不是个程序员。。。这个小游戏是我小时候玩过的一种棋盘类游戏,可能只在我们那边才会知道,不过现在小孩估计已经很少玩了,搞不好要失传了