- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我不是在写游戏,而是使用 Pygame 的科学渲染器。我希望控件像在第一人称射击游戏中一样工作,以便用户可以使用一组熟悉的控件进行导航。
我曾尝试编写代码以使其具有与“外观”功能相同的属性,例如Skyrim 或 Half-Life 但鼠标不会移动光标 - 它可以让你环顾四周,无限循环。点击应该没有效果。
控件的第一次尝试:
(游戏循环中的代码)
delta_y, delta_x = pygame.mouse.get_rel()
rotation_direction.x = float(delta_x)
rotation_direction.y = float(delta_y)
(不要问我为什么,但是 y 和 x 需要像这样反转以获得预期的外观方向;一定与相机变换实现有关,isn't mine。)
然而,这会导致光标位于窗口顶部,当光标到达屏幕边缘时,窗口停止旋转;即代码报告屏幕上的实际位置。
我尝试在每个游戏循环中“重置”鼠标位置(顺便说一句,隐藏鼠标):
pygame.mouse.set_pos([150, 150])
pygame.mouse.set_visible(False)
但这会在下一个循环中生成一个对称的“返回开始”增量,这意味着您无法“查看”任何地方。
总而言之,我想:
执行此操作的最佳方法是什么,使用 Pygame 或其他 Python hack?
最佳答案
http://www.pygame.org/docs/ref/mouse.html :
如果鼠标光标被隐藏,并且输入被抓取到当前显示鼠标将进入虚拟输入模式,鼠标的相对移动永远不会被屏幕的边界停止屏幕。查看函数 pygame.mouse.set_visible
- 隐藏或显示鼠标光标和 pygame.event.set_grab
( docs ) - 控制与其他应用程序共享输入设备进行配置。
关于python - Pygame - 第一人称射击游戏 "look"用鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556674/
我需要实现射击机制。我需要射弹的连续运动,但我无法对其进行编码。此时,当我按下空格键时,程序就会卡住。我们将不胜感激。 from tkinter import * # creates window w
我遇到了一个问题。如果有任何帮助,我将不胜感激。 我正在尝试从玩家位置射击到鼠标点击位置。代码没有给我任何错误,根据我的逻辑,它应该可以工作,但它没有 它创建了项目符号对象,仅此而已。 //Bulle
我正在用 Java 开发一款 Android 游戏,其中我将有一个 Sprite 跟随用户的手指,并且应该每秒发射一颗子弹。换句话说,我试图附加一个每秒向上移动的位图。位图从主要角色 Sprite 的
我需要在 JQuery 中使用 focusin 和 focusout 触发器。我将它与 Bootstrap Popovers 一起使用。 目前,由于我认为某些奇怪的原因,它不起作用。 这有什么问题吗?
我是一名优秀的程序员,十分优秀!