gpt4 book ai didi

C++ SFML,轨道

转载 作者:行者123 更新时间:2023-11-28 02:04:02 28 4
gpt4 key购买 nike

我最近开始学习SFML,我有一个问题,如何使第二个物体在轨道上运动,请帮助。

#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
RenderWindow window(VideoMode(800, 600), "Hello, world!");

CircleShape shape(50.f);
shape.setFillColor(Color::Black);
shape.setPosition(400,300);
shape.setOrigin(50,50);

CircleShape shape2(10.f);
shape2.setFillColor(Color::Black);
shape2.setPosition(700,500);
shape2.setOrigin(10,10);

while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();

}
window.clear(Color::White);
window.draw(shape);
window.draw(shape2);
window.display();
}
return 0;
}

最佳答案

嗯...我不会发布完整的解决方案。给你完整的代码不会有教育意义。但我会给你一些提示 :)。

  1. 你的世界更新应该在循环中发生。在 while 循环中。你那里有两个。您认为哪一个会更新您的世界?
  2. 笛卡尔坐标系中的圆方程为:(x-a)^2 + (y-b)^2 = r^2
  3. 在 1 的循环中,您应该使用 2 的等式来更新第二个对象 (shape2) 的坐标。
  4. 要从第 3 点开始执行操作,您有两种可能性:函数 setPosition 和函数 move,它们都是 CircleShape 类的成员。

如果您还有其他问题,请在评论中提问。

对于你 future 关于堆栈的问题:给我们证明你在解决问题上付出了一些努力。如果问题看起来像我现在要回答的问题,我们认为您没有考虑它只是将它发布在这里,您正在等待有人为您编写代码。

关于C++ SFML,轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38302443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com