草庐IT

game-physics

全部标签

c++ - Bullet Physics 最简单的碰撞示例

我正在尝试将BulletPhysics仅用于碰撞检测。我不需要它为我移动任何对象或使用回调处理渲染。我只想更新每一帧的对象位置,并在发生碰撞时用它来告诉我。为了获得最简单的示例,我试图找到以btBoxShape作为其形状的对象之间的碰撞。一切运行良好,没有崩溃或明显的内存泄漏,但我没有发生碰撞,所以我一定是在某个地方犯了一些错误。我尽量保持简短,不会遗漏任何重要内容。这是我的世界设置函数:collisionConfig=newbtDefaultCollisionConfiguration();dispatcher=newbtCollisionDispatcher(collisionCo

c++ - 用于 C++ 2D GameEngine 的 Chipmunk Physics 或 Box2D?

我正在开发它正在变成一个“跨平台”2D游戏引擎,我最初的平台目标是iPhone操作系统,但可以转移到Android或什至一些控制台,如PSP或NintendoDS,我想保持我的选择开放。我的引擎是用C++开发的,并且已经阅读了很多关于Box2D和Chipmunk的内容,但我仍然无法决定使用哪一个作为我的物理中间件。Chipmunk看起来很容易嵌入,而Box2D似乎被广泛使用。Chipmunk是C语言,Box2D是C++,但我听说Box2D的API比chipmunk的API差很多。现在我将为不规则多边形(非凹面)使用引擎形状创建和碰撞检测功能。我的值(value)观:1)GoodAPI'

Games104现代游戏引擎笔记 网络游戏架构基础

挑战1:网络同步挑战2:是网络的可靠性,包括应对网络的延迟,丢包和掉线挑战3:反作弊和安全系统,因为网络游戏的本质是经济系统挑战4:多样性(不同设备,不同服务器),在不停服的情况下热更新挑战5:大量人数时对高并发,高操作的要求NetworkProtocols网络协议Socket编程,通过接口,确认好相互的协议,就可以快速的建立持续的链接国内是IVP4居多,最好兼容IPV6,这是世界标准通过三次握手建立可靠的连接,确保发送的包是有顺序的,会进行流量控制,但网络阻塞时会自动降低发包的效率基本原理:当任何一个接受者收到一个信息时,给sender发送一个ACK(告知),当sender收到ACK时,才持

Unity中Physics.Raycast 的使用

Physics.Raycast 简介  ▼Physics.Raycast 官方文档中提供的参数如下   Physics.Raycast 从指定的位置发射一条射线,如果射线与物体发生碰撞返回true否则返回false其中射线的起点,方向是不可以省略的,其他参数可以省略案例▼第1,2个参数定义了一条射线的起点与方向第3个参数为RaycastHi用以从射线获取参数RaycastHithit;voidUpdate(){//如果检测到物体if(Physics.Raycast(transform.position,transform.forward,outhit)){Debug.Log(hit.colli

Unity UGUI的Physics2DRaycaster (2D物理射线检测)组件的介绍及使用

UnityUGUI的Physics2DRaycaster(2D物理射线检测)组件的介绍及使用一、什么是Physics2DRaycaster组件?Physics2DRaycaster是Unity中的一个UGUI组件,用于在2D场景中进行物理射线检测。它可以检测鼠标或触摸事件在UI元素上的碰撞,并将事件传递给相应的UI元素。二、Physics2DRaycaster的工作原理Physics2DRaycaster通过发射一条射线来检测UI元素的碰撞。当射线与UI元素相交时,Physics2DRaycaster会将事件传递给相应的UI元素,使其能够响应用户的输入。三、Physics2DRaycaster

unity scene场景调整好后让game窗口的视角与scene相同

调整scene中场景视角选中相机然后如果要实现相反的功能 即scene的视角与game的一样则选中相机

games101-1 光栅化与光线追踪中的空间变换

在学习了一些games101的课程之后,我还是有点困惑,对于计算机图形学的基础知识,总感觉还是缺乏一些更加全面的认识,幸而最*在做games101的第五次作业时,查询资料找到了scratchpixel这个网站,看了一些文章,终于把脑子里的一团乱麻组织起来了,也就有了这篇关于图形学的第一篇博客。想要更好的理解这篇博客,强烈推荐先学习games101中关于transformation,rasterization和raytracing的第一部分以下内容参考:https://www.scratchapixel.com/lessons/3d-basic-rendering/computing-pixel

Games104现代游戏引擎笔记高级ai

HierarchicalTaskNetwork层次任务网络WorldState是一个主观的对世界的认知,并不是一个真实世界的描述Sensors负责从游戏环境中抓取各种状态HTNDomain存放层次化的树状结构Task和之间的关联关系1Planner根据WorldState从Domain里规划taskPlanRunner根据Planner设定的计划执行Task,当Task执行过程中发生了很多其他问题,PlanRunner会监控所有的状态并且告知Planner规划另一系列Task(Re-plan)primitive:单个动作compound:复合任务preconditions:检测worldsta

了解Unity编辑器之组件篇Physics 2D(十二)

一、AreaEffector2D区域施加力):用于控制区域施加力的行为UseColliderMask(使用碰撞器遮罩):启用后,区域施加力仅会作用于特定的碰撞器。可以使用ColliderMask属性选择要作用的碰撞器。ColliderMask(碰撞器遮罩):选择要使用区域施加力的碰撞器。可以通过勾选碰撞器层来指定作用的碰撞器。只有在UseColliderMask启用时才生效。UseGlobalAngle(使用全局角度):启用后,区域施加力将使用全局角度而不是本地角度。这表示力向量将基于世界坐标系进行计算,并忽略区域施加力对象的旋转。ForceAngle(力角度):指定力的方向角度,以度为单位。

初识Unity——创建代码、场景以及五个常用面板(创建C#代码、打开代码文件、场景的创建、Project、Hierarchy、Inspector、Scene、Game )

目录创建代码创建C#脚本打开代码文件可能出现的问题场景场景的创建基本介绍五个窗口面板的作用ProjectHierarchyInspectorSceneGame 创建代码创建C#脚本从unity2018版本开始,unity就开始不再维护和推荐JavaScriptforUnity以及Boo等语言,现在官方主推和最常用的脚本语言是C#。创建一个脚本之后给它命名(必须得是英文)。 打开代码文件如果是在unityhub安装编辑器时勾选了VS2019的模块进行安装,那么双击脚本文件之后就会自动通过VS2019来打开这个文件了。如果没有勾选VS2019的模块,或者自己有其他版本的VS。那就需要自己去指定一下