横版过关游戏开发-碰撞检测

如何做一个2D 横版过关类游戏 如何做一个2D 横版过关类游戏 好多人学编程的初衷都是对电子游戏的热爱,以及想做自己的电子游戏,从而学习了计算机专业。然而随学习大多发现自己并没有做电子游戏方面的进步。这个教程在这里给仍对游戏编程执念的同学一点启发,给曾经想做电子游戏的同学一点 “原来如此” 的回味。 不可否认,电子游戏的主题是电子艺术。而电子游戏编成只是给电子艺术表现的平台。本文意在介绍2D电子游戏编程的原理和程序设计方向,不在艺术方面讨论。作者本人并没有专业游戏开发经验。只是凭编程直觉和出自对电子游戏的个人理解。本文以制作超级玛丽洛克人 阅读详情

上回说哪了?碰撞检测。碰撞检测应该是所有事件的触发点。比如:人物下落的时候,落到地面上。程序实现就要不断地检测人物坐标和地面坐标,如果碰撞,则停止下落。还有其他情况:子弹碰到敌人,则敌人消失,并且显示一个子弹爆炸的画面;人物碰到金币,则累计金钱数量,显示一个小动画。

程序怎样实现:所有图形元素,都应该有一个外包图形,如点,圆,三角形,矩形。为了简单起见,这次,我都用了矩形。判断的时候,是用几个宏实现的:

//点与矩形碰撞

#define POINT_IN_RECT(x,y,x1,y1,w,h) ((y)>(y1) && (y)<(y1)+(h) /

                                    && (x)>(x1) && (x)<(x1)+(w))



//点在一个区间内

#define IN_AREA(x,x1,w) ( (x)>(x1) && (x)<(x1)+(w) )



//两个线段重叠

#define LINE_ON_LINE(x1,y1,w1,x2,y2,w2) ((y1)==(y2) /

					&& (x1)<(x2)+(w2) && (x1)>(x2)-(w1) )



//竖线与矩形碰撞

#define VLINE_IN_RECT(x,y,h,x1,y1,w1,h1) ( (y)+(h)>(y1) && (y)<(y1)+(h1) /

                                    && (x)>(x1) && (x)<(x1)+(w1) )



//横线与矩形碰撞

#define HLINE_IN_RECT(x,y,w,x1,y1,w1,h1) ( (y)>(y1) && (y)<(y1)+(h1) /

                                        && (x)+(w)>(x1) && (x)<(x1)+(w1) )



//横线与矩形碰撞

#define HLINE_ON_RECT(x,y,w,x1,y1,w1,h1) ( (y)>=(y1) && (y)<=(y1)+(h1) /

                                        && (x)+(w)>=(x1) && (x)<=(x1)+(w1) )



//矩形与矩形碰撞

#define RECT_HIT_RECT(x,y,w,h,x1,y1,w1,h1) ( (y)+(h)>(y1) && (y)<(y1)+(h1) /

                                        && (x)+(w)>(x1) && (x)<(x1)+(w1) )
今天就讲到这,其他内容以后慢慢讲。
基于cocos2d-x的横版格斗过关游戏完整源码项目 回过头看,从最基础的坐标系统,到复杂的动作协同,我们一步步搭建起了一个完整的横版游戏骨架。你会发现,真正决定品质的,从来不是某一行神奇的代码,而是对系统理解的深度 + 对细节打磨的耐心。希望这篇指南能成为你通往专业游戏开发路上的一盏灯。毕竟,每一个流畅跳跃的角色背后,都有一个默默调参数的开发者在坚持。本文还有配套的精品资源,点击获取。 阅读详情

相关推荐

Cocos2d-x横版跑酷游戏开发实战:萝莉快跑

Cocos2d-x 是一个开源的、跨平台的 2D 游戏开发框架,广泛应用于移动游戏和桌面游戏的开发。它以 C++ 为核心语言,支持 Lua 和 JavaScript 脚本语言绑定,具备良好的性能和灵活的扩展性。public:在实际游戏中,可能需要根据不同的碰撞对象执行不同的逻辑,例如角色碰撞敌人触发伤害、角色碰到金币触发得分。

weixin_36300623的博客 1139

《Genesis-3D开源游戏引擎--横版格斗游戏制作教程03:碰撞检测》

3.碰撞检测 碰撞检测的概述: 碰撞在物理学中表现为两粒子或物体间极端的相互作用。而在游戏世界中,游戏对象在游戏世界自身并不受物理左右,为了模拟真实世界的效果,需要开发者为其添加属性,以模拟真实事件的运动效果。在游戏世界里,当游戏主角与其它游戏对象发生碰撞时,都会触发一个相应的事件发生。这时候就需要开发者先检测到碰撞现象,即碰撞检测。在Genesis-3D引擎中,能检测碰撞发生的方式有两种:一...

weixin_30572613的博客 273

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

2D横版地图碰撞实现

1. 看过很多横版游戏关卡代码例子,关于边界检测,很多就给一个大的长方形,然后根据这个长方形的长宽去判断边界。最近想让边界呈多边形形状,而且有做世界地图的想法,让角色在大地图上自由移动,很明显一个长方形就无法满足自己的需求了。 2. 我的想法: 0)构建地图,用线段去构建各种形状的游戏中的玩家可碰撞的物体,得到一个线段集合。 1)X方向:在玩家当前位置的点,向前拉一条一定长度(这个根

rekrad的专栏 3312

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6516

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 646

Unity 3D之碰撞检测

碰撞检测两大必备条件:1.其中一方具备刚体,碰撞双方碰撞器。触发检测两大必备条件:1.其中一方具备刚体,碰撞双方触发器。

m0_74427422的博客 4979

nnDetection实战:手把手教你用Python在自家电脑上跑通第一个肺结节检测模型

本文详细介绍了如何使用nnDetection框架在普通电脑上实现肺结节检测模型的搭建与运行。从环境配置、数据预处理到模型训练与推理,手把手教你完成医学图像检测的全流程,特别适合初学者入门医学AI领域。

weixin_32377497的博客 330

在Direct3D程序中运用碰撞检测

几乎所有的3D游戏都离不开碰撞检测——无论是各物体之间的碰撞检测,还是物体与场景之间的碰撞检测。在真实世界中,你是很自然地不能穿墙而过的,所以很多人在玩各种3D游戏的时候自然而然的忽视了碰撞检测这一过程的存在。然而,碰撞检测的过程是重要的。如果没有它,你在CS中就会毫无遮拦的飞来飞去——如果考虑重力的话,则会一直不停地往下掉,直到符点数溢出(或你受不了这一漫长的过程而离开游戏)为止。碰撞检测是在编

飞凌雪的专栏 2305

仿人型机械臂逆运动学避坑指南:当末端三关节平行时如何处理奇异点

本文深入探讨了6R仿人型机械臂在末三轴平行结构下的逆运动学求解策略,重点分析了运动学逆解中的奇异点问题及其处理方法。通过MATLAB实现展示了D-H参数建模、几何解析法求解流程以及奇异点规避策略,为工业机器人开发提供了实用的数值算法方案和工程优化技巧。

sss66的博客 882

22、忆阻器、忆阻系统及其神经形态应用综述

本文综述了忆阻器与忆阻系统的理论基础及其在神经形态系统中的广泛应用。从忆阻器的基本定义出发,介绍了其在非线性电路、存储技术、通信和神经形态计算等领域的应用潜力。重点探讨了基于忆阻器的神经元模型(如Hodgkin-Huxley、FitzHugh-Nagumo和Hindmarsh-Rose模型)、突触实现方式及多种忆阻神经网络架构,包括细胞神经网络、脉冲神经网络和递归神经网络等。此外,深入分析了忆阻器在水库计算中的理论研究与硬件实现进展,展示了其在时间序列处理、模式识别和信号预测等方面的优异性能。尽管忆阻技术前

kiwi8的博客 207

游戏开发基础--碰撞检测

  碰撞就是游戏中的元素是否碰到一起,比如打飞机游戏,没躲避炮弹就算碰撞,要检测出来,要game over的。主要讲讲2D游戏里的碰撞检测,传统的2D游戏可以把不同元素当作基本图形粗糙地来检测碰撞与否? 1、矩形判断     比如把游戏中敌我双方人物都当作矩形来检测两个矩形是否相交。那么如何判读两个矩形是否相交呢?    相交 == !(不相交),不相交较好判断,优先判读不相交再取...

weixin_30342209的博客 909

RICHARDSON-LUCY 去卷积简介

Lucy去卷积1.泊松过程及联合概率分布2.极大似然估计参考文献 1.泊松过程及联合概率分布 首先假设相机接收光子生成图像的过程符合泊松分布。 因此,一次曝光过程中,某像素位置接收到iii个光子的概率p(i)p(i)p(i)为: p(i)=exp⁡(−λ)⋅λii!\qquad\qquad p(i)=\exp(-\lambda)\cdot\cfrac{\lambda^{i}}{i!}p(i)=exp(−λ)⋅i!λi​ 那么针对一张M∗NM*NM∗N的图像,所有像素的联合概率分布可以描述为: P(I)=∏e

驽马十驾,功在不舍;锲而不舍,金石可镂。 8694

尝试写款小游戏吧

题引:写好了简单的五子棋,尝试写写稍微复杂一些的格斗游戏吧。 编程目标是实现类似《三剑舞》的横板过关游戏。游戏素材采用《冒险岛》的像素图。 游戏由玩家操作的Hero和系统操作的Boss组成,需要实现移动、出招、伤判等基本游戏要素。

杨桃的博客 495

python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法

出现该Bug的原因主要是 账号密码无法登录,但原先使用该代码测试qq或者163的时候是可以通过的!问题在于各个公司邮件所处理的代码方式不一样

码农研究僧的博客 3503

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

类似dnf的游戏

首先来个背景简介吧,除了游戏高玩,可能很多开发者并不知道Scott Pilgrim这款游戏。实际上它是改编自经典漫画Scott Pilgrim vs. the World,由Ubisoft开发,最初发行在Xbox live上。该系列漫画的详细信息请参考维基百科:http://en.wikipedia.org/wiki/Scott_Pilgrim 好吧,如果你还是对这类游戏毫无头绪,想想曾经玩过的

weihongchang的专栏 1779

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

cocos2d-x快乐的做让人快乐的游戏5:一个横版ARPG过关游戏

在第一篇《如何制作一个横版格斗过关游戏》基础上,增加角色运动、碰撞、敌人、AI和音乐音效,原文《How To Make A Side-Scrolling Beat ‘Em Up Game Like Scott Pilgrim with Cocos2D – Part 2》,在这里继续以Cocos2d-x进行实现。有关源码、资源等在文章下面给出了地址。 步骤如下: 1.使用上一篇的工程; 2

peter_teng的专栏 2965

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Cocos2D来制作横版过关游戏1

本文实践自 Allen Tan 的文章《How To Make A Side-Scrolling Beat ‘Em Up Game Like Scott Pilgrim with Cocos2D – Part 1》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移植。在这篇文章,将会学习到如何制作一个简单的横版格斗过关游戏。在这当中,学习如何跟踪动画状态、碰撞盒、

brainkf的博客 627

发现The Render Engine:复古游戏开发的现代启示录

发现The Render Engine:复古游戏开发的现代启示录 在快速发展的前端技术领域中,经典总是值得我们回望。今天,让我们一起探索一个虽然已停止维护但依然闪烁着智慧光芒的游戏引擎——The Render Engine。这个项目不仅是JavaScript游戏开发的宝贵遗产,更是学习现代游戏框架思想的优秀起点。 项目介绍 The Render Engine,一款全由JavaScript编写的开源...

gitblog_00490的博客 518

如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4

原文在http://blog.youkuaiyun.com/akof1314/article/details/8549150   本文实践自 Allen Tan 的文章《How To Make A Side-Scrolling Beat ‘Em Up Game Like Scott Pilgrim with Cocos2D – Part 1》,文中使用Cocos2D,我在这里使用Cocos2D-x 2

RationalGo的专栏 1053

cocos2d 3.0 box2d 解决移动相机镜头(滚屏)问题的方法

最近在研究横版过关游戏,原来是用Rect框跟随主角、怪物来实现碰撞检测,但觉得不精确,所以想用box2d实现精确的碰撞检测,但用上box2d后有一个比较严重的问题:英雄精灵的坐标与PhysicsBody的坐标不一样了。 相机镜头(滚屏)原理详解: 如果Layer是一张长方形的桌子,hero是站在桌子上的一只蚂蚁,我们的游戏界面窗口是手持的一个DV摄像机,这时我们正通过摄像机的屏幕查看蚂蚁,蚂蚁

pamxy啲Coding窝... 4189

从理论到实践:使用Duality开发横版过关游戏的完整教程

Duality是一款强大的2D游戏开发框架,基于C#和OpenGL构建,为开发者提供了创建横版过关游戏的全套工具和组件。本教程将带你从基础理论到实际操作,掌握使用Duality框架开发横版过关游戏的核心技能,让你快速上手并制作出属于自己的游戏作品。 ## 🎮 Duality框架简介:为什么选择它开发横版过关游戏 Duality作为一款专注于2D游戏开发的框架,具有诸多优势,使其成为横版过关游

gitblog_00285的博客 434

横版过关游戏开发1

说来惭愧,我还没做过横版过关游戏。去年辞职后,一怒之下,要做个横版游戏。最终还是没坚持下来,主要原因是,总觉得这东西太陈旧。最近有些技痒,决定再做个横版游戏。而且,我有一个重大心得,横版游戏的游戏性非常高,简单说就是“好玩”,永远值得研究。到现在,已经做了三天,已经完成了地图、背景、角色的初始状态,正在做角色的碰撞检测。吸取了上次的教训,这次采用一个更好的类层次结构,把地图划分成一个一个对象,不再

programking的快乐生活 1264

Air for ios横版格斗过关项目技术整理

Air for ios横版格斗过关项目技术整理 关键字:starling         citrus-engine         nape物理引擎 横版格斗过关  孤影剑客 前言: 作为as程序猿一枚,算算也有些时间了。回顾起进入游戏开发行业的缘由,可以追溯到小时候羡慕别人家的小霸王游戏机。“魂斗罗”,是“游戏”这个词给我的第一个印象。金庸武侠,对我这样一个伪文艺青年还是有强烈吸引力的。

MuHuaSongDu的专栏 730
上一篇: 横版过关游戏开发-人物控制
下一篇: 横版过关游戏源码
programking
博客等级 码龄23年 450粉丝 140原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值