collision 相关问题

一个或多个对象或概念的交集,例如通信包或函数名。有关碰撞检测的问题(在计算机图形学中),请使用[tag:collision-detection]。

如何访问瓦片地图(Unity 2D)中某个瓦片的位置?

我目前正在尝试找到一种方法来获取与我碰撞的特定图块的位置。我有一个带有瓦片地图碰撞器的大型瓦片地图,并且我有一个具有脚本的播放器(见下文)...

回答 1 投票 0

在 pygame 中使用蒙版并创建带有碰撞的地图

我正在尝试将我的地图的 png 转换为实际地图,但碰撞无法按照我的需要进行。 这是我用来测试碰撞然后改变玩家运动的代码。我不确定...

回答 0 投票 0

碰撞是什么

我已经绞尽脑汁几个小时了,但仍然不明白什么是碰撞? 是当两个不同的对象获得相同的哈希码时吗? 或者是当两个不同的对象...

回答 2 投票 0

如何在 JavaScript 中检查直线是否与圆相交?

我正在创建一个库,这样我可以更轻松地创建 HTML5 canvas 游戏。我目前正在研究碰撞检测。这是我为线/圆碰撞编写的代码如下。 object1 是...

回答 2 投票 0

两个圆圈之间的碰撞行为不正确

#include #包括 #包括 #包括 #包括 #包括 #包括 #include <SFML/Graphics.hpp> #include <SFML/Audio.hpp> #include <SFML/System.hpp> #include <Windows.h> #include <iostream> #include <math.h> #include <cmath> #include <thread> #include <random> double DISTANCE( sf::Vector2f l, sf::Vector2f k); bool Check_Collision(sf::CircleShape x, sf::CircleShape y); double angle_opp(sf::Vector2f l, sf::Vector2f k); double angle(sf::Vector2f l, sf::Vector2f k); double angle_adj(sf::Vector2f l, sf::Vector2f k); int main() { int i = 1; int x1 = 400; int y1 = 200; int x2 = 200; int y2 = 200; int rad = 20; sf::Clock clock; sf::RenderWindow window(sf::VideoMode(1000,1000),"Sheka Snake"); sf::CircleShape circle1; sf::CircleShape boost; circle1.setPosition(x1,y1); circle1.setRadius(rad); boost.setPosition(300, 500); boost.setRadius(10); boost.setFillColor(sf::Color::Red); window.clear(); window.draw(circle1); window.display(); window.setFramerateLimit(60); window.setVerticalSyncEnabled(false); sf::Vector2f f1; sf::Vector2f f2; bool collid = false; while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } float fps = clock.restart().asMilliseconds(); float speed = 0.3f * fps; if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) { circle1.move(-speed, 0); } if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) { circle1.move(0, -speed); } if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) { circle1.move(0, speed); } if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) { circle1.move(speed, 0); } if (Check_Collision(circle1, boost) == true) { std::random_device dev; std::mt19937 rng(dev()); std::uniform_int_distribution<std::mt19937::result_type> dist6(0, 1000);// distribution in range [1, 6] std::cout << dist6(rng)<<std::endl; boost.setPosition(dist6(rng), dist6(rng)); rad = rad + 30; circle1.setRadius(rad); } sf::Vector2f l; sf::Vector2f k; l = circle1.getPosition(); k = boost.getPosition(); window.clear(); window.draw(circle1); window.draw(boost); window.display(); } } double DISTANCE(sf::Vector2f l, sf::Vector2f k) { double dy = (l.y - k.y); double dx = (l.x - k.x); double d = sqrt(pow(dy, 2) + pow(dx, 2)); return d; } double angle_opp(sf::Vector2f l, sf::Vector2f k) { return (k.y - l.y); } double angle_adj(sf::Vector2f l, sf::Vector2f k) { return (k.x - l.x); } double angle(sf::Vector2f l, sf::Vector2f k) { return atan((k.y - l.y) / (k.x - l.x)); } bool Check_Collision(sf::CircleShape x,sf::CircleShape y) { using namespace sf; Vector2f v1; Vector2f v2; v1 = x.getPosition(); v2 = y.getPosition(); std::cout << "x:" << v2.x << "y:" << v2.y << std::endl; double dis =DISTANCE(v1,v2); double a; if (dis <= x.getRadius() + y.getRadius()) { return true; } } 你好,我是一名尝试学习 SFML 的初学者,我尝试让一个球在外部与另一个球碰撞,但碰撞无法正常工作,有时球在接触另一个球之前发生碰撞,有时在进入另一个球后发生碰撞。第一次碰撞后的距离似乎计算不正确 根据您提供的代码,我认为您试图解决的问题是由于您正在计算所有这些距离并比较它们和其他东西但不考虑起始(原点)偏移而造成的。当我们通常比较或计算这些物体的距离时,对我们来说物体的起点总是在中心。而在 sfml 中,原点总是在形状的左上角。对于任何非矩形形状,它是围绕形状边缘绘制的矩形(不可见)的左上角。 但是有一个更简单的解决方案。 SFML 已经有一个内置的基本碰撞: int main() { sf::CircleShape circ1; sf::CircleShape circ2; cout << circ1.getGlobalBounds().intersects(circ2) << endl; 上述函数获取 circ1 的面积并检查是否有任何其他 sf::Drawable 与该形状接触。希望这有帮助

回答 1 投票 0

GameObject UI(命名对话)即使应该设置为 active 也没有设置为 true

在下面的代码中, 私有无效 OnCollisionEnter2D(Collision2D 碰撞) { 如果(collision.gameObject.CompareTag(“地面”)) { 接地=真; ...

回答 0 投票 0

在我的 Unity 中,我使用 OnTriggerEnter2D 进行子弹和飞机的碰撞,但我在条件下输入的结果只发生一次

在下面的代码中, 使用系统; 使用系统集合; 使用 System.Collections.Generic; 使用统一引擎; 使用 UnityEngine.UI; 公共课项目符号:MonoBehaviour { 公共刚体...

回答 0 投票 0

我如何修复飞扬的小鸟游戏中的碰撞检测代码

我是一名新程序员,决定制作一款飞扬的小鸟克隆游戏。我目前拥有游戏的所有机制,例如管道移动到新位置和小鸟跳跃,但我无法...

回答 0 投票 0

如何为玩家动作添加碰撞? (团结)

我这里有一个代码,可以让玩家朝摄像机的方向移动。动作有效,但玩家穿过墙壁,我尝试向 p[层添加一个盒子对撞机,但是......

回答 1 投票 0

尝试在 Pygame 中为平台游戏实现像素完美碰撞的错误 [重复]

我一直在尝试用 Python 为马里奥风格的平台游戏实现像素完美碰撞。 它可以正常工作,但是当玩家到达平台的边缘时,它会在...上出现错误和结结巴巴

回答 0 投票 0

书架碰撞干扰书籍

所以我按照关于通过移动一本书制作暗门的信来学习本教程。 https://www.youtube.com/watch?v=f9Aeff4vY88 然而,当我到达教程的最后时,我无法互动......

回答 0 投票 0

如何才能做出“碰撞中的碰撞”?

如何做一个“碰撞中的碰撞”,让鱼在移动的时候在水族箱里面游,不飞走?如果你只是给球加上通常的碰撞,鱼会......

回答 1 投票 0

碰撞检测/响应算法的接触流形实现

我目前正在用 OpenGL 编写一个基于物理的引擎,对于碰撞响应,我正在使用脉冲计算。为此,我需要接触歧管(接触点)。但这很不同......

回答 0 投票 0

Python 中的海龟碰撞问题

我正在创建游戏,但在检测碰撞时遇到问题。是python turtles,代码很长。如果有我想知道的 pip 模块,否则创建一个 d...

回答 0 投票 0

在 javaScript Canvas 上停止碰撞时的动画切割

OK这是一个场景 即使 slot[1] 在通过 25 后变为 false,我如何继续向 slot[2] 添加一个。 我希望 25 成为开始添加功能的 GO。 就像一个快速 23 - 假...

回答 0 投票 0

检测矩形上已知大小和位置的碰撞

我想检测两个矩形之间的碰撞,我知道它们的大小和位置。我在我的“砖块”类中尝试了这个 c# 代码,它使用播放器的中心......

回答 1 投票 0

我如何创建一个有组织的碰撞系统

第一次做游戏。 我怎样才能使碰撞连接到我所有的怪物,而不必为缓冲区中的每个怪物设置碰撞功能。 我想做一个 碰撞。

回答 0 投票 0

我的 Unity 碰撞脚本有错误

我正在尝试为我的游戏制作一个碰撞脚本,当玩家撞到障碍物时,运动脚本被禁用。所以,我试图为碰撞制作一个单独的脚本,但是当 pla...

回答 0 投票 0

地图碰撞功能2D游戏

我的播放器可以垂直、水平和对角线移动。我在编写一个好的对角线碰撞函数时遇到了问题。我的目标是执行以下操作:如果玩家沿对角线移动并发生碰撞

回答 1 投票 0

Pygame 碰撞框不随矩形移动 [重复]

你好我只是想用pygame作为一个项目重新创建乒乓球。 出于某种原因,当我使用当前代码移动任一桨时,实际矩形不会随图像一起移动。 这是我的代码

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.