【发布时间】:2016-03-15 16:51:39
【问题描述】:
我有一个 SPEEDLINK 游戏手柄,想查看游戏手柄中的移动结果。我是这样写的:
import pygame
from pygame.locals import *
import random
pygame.init()
TV=pygame.display.set_mode((500,500))
joystick_count = pygame.joystick.get_count()
if joystick_count == 0:
# No joysticks!
print("Error, I didn't find any joysticks.")
else:
# Use joystick #0 and initialize it
my_joystick = pygame.joystick.Joystick(0)
my_joystick.init()
x,y=400,400
pygame.draw.circle(TV,(100,200,40),(x,y),10)
pygame.display.flip()
my_joystick = pygame.joystick.Joystick(0)
clock=pygame.time.Clock()
my_joystick.init()
done=False
print pygame.joystick.get_count()
while not done:
for e in pygame.event.get():
if e.type==QUIT:
done=True
elif e.type==JOYBUTTONUP:
x=my_joystick.get_axis(0)
y=my_joystick.get_axis(1)
print x,y
clock.tick(60)
pygame.quit()
但是当我移动帽子时,在帽子右边它给了我 0.999969482422 0.0 而不是 1 0,同样在帽子下我得到 0.0 0.999969482422 而不是 0 1。为什么会这样?我怎样才能像其他职位一样在这些地方获得 ONE?
【问题讨论】:
-
所以我可以用另一个操纵杆获得 1,你的意思是?
-
0.999969482422 与 1.0 相同 你永远不会有游戏在这些值之间产生差异。
标签: python-2.7 pygame joystick