草庐IT

2d-games

全部标签

c++ - QuadTree 用于 2D 碰撞检测

我目前正在开发2D射击类型的游戏,并且我正在使用四叉树进行碰撞检测。我编写了一个工作四叉树,可以正确地将我的Actor插入它们在树中所属的节点/叶子中。但是,我遇到了一些问题。首先,我如何实际使用我的四叉树来选择一个对象应该针对哪些其他对象测试碰撞?我不确定这是如何完成的。这就引出了第二个问题。假设我在节点中有一个对象不是另一个节点的邻居,但是该对象足够大以至于它跨越了几个节点,我如何检查实际的碰撞,因为我猜测树可能认为它不是足够接近以与“远处”节点中的对象发生碰撞?不完全适合节点的对象是否应该保留在父节点中?在我的游戏中,大多数物体大小不一,并且四处移动。我已经阅读了大量关于四叉树的

C++/OpenGL 将世界坐标转换为屏幕(2D)坐标

我正在使用OpenGL制作游戏,其中我在世界空间中有一些对象。我想创建一个函数,我可以在其中获取对象的位置(3D)并将其转换为屏幕的位置(2D)并返回。我在以下变量中知道对象、投影矩阵和View矩阵的3D位置:MatrixprojectionMatrix;MatrixviewMatrix;Vector3point3D; 最佳答案 要进行此转换,您必须首先获取模型空间位置并将它们转换为剪辑空间。这是通过矩阵乘法完成的。我将使用GLSL风格的代码来明确我在做什么:vec4clipSpacePos=projectionMatrix*(vi

C++/OpenGL 将世界坐标转换为屏幕(2D)坐标

我正在使用OpenGL制作游戏,其中我在世界空间中有一些对象。我想创建一个函数,我可以在其中获取对象的位置(3D)并将其转换为屏幕的位置(2D)并返回。我在以下变量中知道对象、投影矩阵和View矩阵的3D位置:MatrixprojectionMatrix;MatrixviewMatrix;Vector3point3D; 最佳答案 要进行此转换,您必须首先获取模型空间位置并将它们转换为剪辑空间。这是通过矩阵乘法完成的。我将使用GLSL风格的代码来明确我在做什么:vec4clipSpacePos=projectionMatrix*(vi

GAMES101 作业1

作业pa1对应的是GAMES101课程Lecture02到Lecture04这三节课的内容,主要是用于巩固空间中的物体投影到相机平面的整个过程。说在前面,本文是在左手系下进行讨论的。1、从main函数看投影粗略地看一遍我们可以知晓main函数的流程:①设定一些基本的初始参数并初始化源代码给出的光栅化类rasterizerwhile循环: ②通过set_model设定被投影物体的位姿变换 ☂通过ser_view设定相机系的位姿变换 ④通过set_projection设定投影关系 ⑤绘制显示投影结果其中②☂④构成整个投影的过程。初学的小伙伴可能不理解这几个位姿变换的意义是什么,博主学过SLAM有一

c++ - fatal error LNK1169 : one or more multiply defined symbols found in game programming

我一直在训练使用C++中的面向对象编程,但我不断收到此错误:1>main.obj:errorLNK2005:"intWIDTH"(?WIDTH@@3HA)alreadydefinedinGameObject.obj1>main.obj:errorLNK2005:"intHEIGHT"(?HEIGHT@@3HA)alreadydefinedinGameObject.obj1>Spaceship.obj:errorLNK2005:"intWIDTH"(?WIDTH@@3HA)alreadydefinedinGameObject.obj1>Spaceship.obj:errorLNK2005

c++ - fatal error LNK1169 : one or more multiply defined symbols found in game programming

我一直在训练使用C++中的面向对象编程,但我不断收到此错误:1>main.obj:errorLNK2005:"intWIDTH"(?WIDTH@@3HA)alreadydefinedinGameObject.obj1>main.obj:errorLNK2005:"intHEIGHT"(?HEIGHT@@3HA)alreadydefinedinGameObject.obj1>Spaceship.obj:errorLNK2005:"intWIDTH"(?WIDTH@@3HA)alreadydefinedinGameObject.obj1>Spaceship.obj:errorLNK2005

Transformer-M:一个能理解2D和3D分子的Transformer

ONETRANSFORMERCANUNDERSTANDBOTH2D&3DMOLECULARDATA目录总结一、Introduction二、Transformer-M三、Experiment1. PCQM4Mv2performance(2D)2. PDBBINDperformance(2D&3D)3.QM9performance(3D)4. AblationstudyImpactofthepre-trainingtasks:Impactofmodedistribution:四、Conclusion参考(具体细节见原文)总结        今天给大家介绍的是来自北京大学贺笛团队和微软在arXiv发

c++ - 使用 2d/3dsplines 从一组嘈杂的数据点中查找曲率? (C++)

我正在尝试沿其轮廓提取脉冲的曲率(见下图)。使用C++实现的有限差分在长度和高度为150x100的网格上计算脉冲。我提取了所有具有相同值(轮廓/水平集)的点,并将它们标记为下图中的红色连续线。其他颜色可以忽略不计。然后我尝试通过以下方式从这条已经嘈杂(由于网格离散化)的轮廓线中找到曲率:(已应用移动平均线)1)通过切线的曲率点P处的线曲率定义为:所以曲率是在P和N之间的弧长上的角度delta的石灰。由于我的点之间有一定的距离,我无法足够近似石灰,因此曲率计算不正确。我用一个圆测试它,它自然有一个恒定的曲率。但我无法重现这一点(只有1个有效数字是正确的)。2)由弧长参数化的线的二阶导数我

c++ - 使用 2d/3dsplines 从一组嘈杂的数据点中查找曲率? (C++)

我正在尝试沿其轮廓提取脉冲的曲率(见下图)。使用C++实现的有限差分在长度和高度为150x100的网格上计算脉冲。我提取了所有具有相同值(轮廓/水平集)的点,并将它们标记为下图中的红色连续线。其他颜色可以忽略不计。然后我尝试通过以下方式从这条已经嘈杂(由于网格离散化)的轮廓线中找到曲率:(已应用移动平均线)1)通过切线的曲率点P处的线曲率定义为:所以曲率是在P和N之间的弧长上的角度delta的石灰。由于我的点之间有一定的距离,我无法足够近似石灰,因此曲率计算不正确。我用一个圆测试它,它自然有一个恒定的曲率。但我无法重现这一点(只有1个有效数字是正确的)。2)由弧长参数化的线的二阶导数我

2D和3D版本的重力游戏

描述2D版本的重力游戏如果你已经完成了该任务,并想要更大的挑战,紧接着介绍3D版本在上物理课的时候很无聊,所以我给自己做了一个玩具箱来打发时间。这个盒子很特别,因为它有改变重力的能力。盒子里有几列玩具方块,排成一列。第i列包含a_i个立方体。起初,盒子里的重力把方块往下拉。当鲍勃转换重力时,它开始把所有的立方体拉到盒子的某一侧,即d,它可以是'L'或'R'(左或右)。下面是一个例子,说明在切换重力之前和之后,一盒立方体可能是什么样子。+---+ +---+| | | |+---+ +---++---++---+ +---+ +---++---++---+| || | | | --> | ||