我已经定义了一个名为carS的RoundShape,它有3个点(显示为三角形)和圆形形状,形状为圆形, 我希望现场停留在汽车的尖端并与汽车的尖端一起移动,但问题是当我运行程序时,它们不会一起移动,有些模棱两可的行为在那里我认为位置有问题两个形状的起源请纠正我,汽车的起源不能改变,但为了将来的目的。也有人可以建议我如何确保我的车+场不会移出窗口边界 这是代码
当然,它不会在codepad.org中运行我发布的链接只是出于便利目的
答案 0 :(得分:0)
您目前缺少游戏循环,因此您的所有移动都将非常难以预测,因为它取决于您的计算机的处理速度。
为了进一步评估,假设您的汽车每次调用代码时都会移动10个像素。如果您的处理器速度很快并且可以每秒100次运行您的代码,那么您的汽车将被移动100 * 10pixel =每秒1000像素。如果您的计算机每秒只能运行10次代码,那么您的汽车将被移动10 * 10pixel = 100像素。
你应该阅读游戏循环的原理。 sfml论坛已经回答了很多问题,并且有一个关于测量网站时间的教程(参见http://www.sfml-dev.org/tutorials/2.4/system-time.php)。
确保您的形状/实体/等。如果没有移出特定区域,您应首先更新游戏循环中的所有位置,然后检查是否允许新位置。在您的示例中,您将检查形状的位置是否小于或大于窗口大小。这个问题在sfml-forum中已经多次评估过了,你应该找到更好的帮助来搜索'边界框'在他们的论坛中。
希望这会有所帮助。祝福,ESSI