Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pygame.joystick返回0

Pygame.joystick返回0
EN

Stack Overflow用户
提问于 2016-11-30 06:35:40
回答 1查看 825关注 0票数 2

我正在尝试建立我自己的迷你库,以简化操纵杆在pygame中的使用。但是,当我试图读取按钮和轴时,它们都返回0,但只返回assign函数(我使用的是罗技攻击3)。

代码语言:javascript
运行
AI代码解释
复制
import sys

import pygame


joysticks = []

pygame.joystick.init()
pygame.init()


# Variables for locations in list #
AXIS_PITCH = 1
AXIS_ROLL = 0
AXIS_THROTTLE = 2
BUTTON_TRIGGER = BUTTON_1 = 3
BUTTON_2 = 4
BUTTON_3 = 5
BUTTON_4 = 6
BUTTON_5 = 7




# Must be called first, initializes joysticks #
def init():
    for joy in range(pygame.joystick.get_count()):
        joysticks.append(pygame.joystick.Joystick(joy))
        joysticks[joy].init()


# Needs player count, surface to draw to, font to use, colour of text, dimesions of screen #
def assign(players, screen, font, colour, dimensions):
#     unassigned = joysticks.copy()
    toReturn = []
    for i in range(players):
        assigned = False
        while(not assigned):
            if(pygame.key.get_pressed()[pygame.K_ESCAPE]): pygame.quit(); sys.exit();
            screen.fill([0,0,0])
            outString = "Player "+str(i+1)+" pull the trigger"
            out = font.render(outString, 1, colour, None)
            screen.blit(out, (dimensions[0]/2-out.get_width()/2, dimensions[1]/2-out.get_height()/2))
            pygame.display.flip()
            for stick in joysticks:
                print(stick.get_axis(1))
                if(stick.get_button(0) == 1):
                    print("Triggered")
                    if(stick not in toReturn):
                        toReturn.append(stick)
                        assigned = True
    return(toReturn)


# Returns the values of three axis, and 5 buttons on the passed joystick
def check(joystick):
    toReturn = []
    toReturn.append(joystick.get_axis(0))
    toReturn.append(joystick.get_axis(1))
    toReturn.append(joystick.get_axis(2))
    toReturn.append(joystick.get_button(0))
    toReturn.append(joystick.get_button(1))
    toReturn.append(joystick.get_button(2))
    toReturn.append(joystick.get_button(3))
    toReturn.append(joystick.get_button(4))
    return(toReturn)

如果你需要更多的代码,就问一问。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 06:00:52

如果不处理事件,像get_pressed()get_button()get_axis()这样的函数可能无法工作--当您不使用pygame.event.get()或其他调用pygame.event.pump()从系统获取信息的事件函数时。

定期使用pygame.event.get() (或其他事件函数)(即。在您的while循环中)从系统获取当前信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40891060

复制
相关文章
MySQL使用存储过程插入批量测试数据
我们先来新建一个表,创建两个普通索引。 CREATE TABLE IF NOT EXISTS  `t` (   `id` int(11) NOT NULL,   `a` int(11) DEFAULT NULL,   `b` int(11) DEFAULT NULL,   PRIMARY KEY (`id`),   KEY `a` (`a`),   KEY `b` (`b`) ) ENGINE=InnoDB;
星哥玩云
2022/08/18
1.9K0
MySQL的存储过程_MySQL创建存储过程
在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢?
全栈程序员站长
2022/11/08
22.6K0
MySQL的存储过程_MySQL创建存储过程
mysql存储过程执行_mysql存储过程不执行
查看event是否开启: show variables like ‘%sche%’;
全栈程序员站长
2022/10/02
16.9K0
mysql使用存储过程demo批量插入数据10w+
先建一个简单的表,表里有 a、b 两个字段,并分别建上索引 CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `a` (`a`), KEY `b` (`b`) ) ENGINE=InnoDB; 存储过程脚本 delimiter ;; create procedure idata() begin d
高大北
2022/06/14
7800
MySQL:MySQL 存储过程
  <1>存储过程一旦调试完成后,就可以稳定运行,(前提是,业务需求要相对稳定,没有变化)
全栈程序员站长
2022/09/06
16.3K0
MySQL:MySQL 存储过程
MySQL存储过程
存储过程体包含了在过程调用时必须执行的语句,例如:dml、ddl语句,if-then-else和while-do语句、声明变量的declare语句等。
看、未来
2021/12/05
10.3K0
MySQL存储过程
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
流柯
2018/08/30
13.9K0
MySQL存储过程
MySQL 存储过程
  MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的 SQL 语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
Demo_Null
2020/09/28
13.6K0
MySQL 存储过程
mysql存储过程
(如果存储过程存在删除后创建!如果不写只能执行一次) 2.DELIMITER //
用户5899361
2020/12/07
9.6K0
Mysql存储过程
1、添加存储过程 DELIMITER // CREATE PROCEDURE AddLLdata( in L_Longitude double , in L_Latitude double, IN L_Elevation double, IN L_LaserHeight double , IN L_FollowHeight double , IN L_PlaneId varchar(255), IN L_FlyDate longtext ) BEGIN insert into lldata(Lon
用户7053485
2020/06/19
9K0
MySQL存储过程
1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
程序猿的栖息地
2022/04/29
9K0
MySQL 存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升
星哥玩云
2022/09/15
37.4K0
MySQL 存储过程
mysql存储过程
1)“存储过程和函数”:类似于java中的方法,python中的函数。 2)“使用存储过程的好处”:   ① 提高代码的重用性;   ② 简化操作;   ③ 减少了编译次数,并且减少了和数据库服务器的连接次数,提高了效率。    注意:每执行一句sql语句,就会连接mysql服务器一次。 3)“存储过程的含义”:一组预先编译好的sQL语句的集合。
数据分析与统计学之美
2022/05/09
11.8K0
mysql存储过程
MySQL(存储过程)
存储过程是一组已经预先编译好的SQL语句的集合,可以理解为批处理语句(增加流程控制语句),一般在复杂的业务逻辑中才会使用存储过程。
全栈开发日记
2022/05/12
11.9K0
MySQL(存储过程)
MySQL存储过程
可惜啊!MySQL目前并不支持在SQL语句中存在流控制语句,例如上面的IF NOT EXISTS THEN END IF;让人痛心疾首。但是我们可以使用存储过程完成上面要求的功能。
恋喵大鲤鱼
2018/08/03
11.4K0
MySQL存储过程
【MySQL】存储过程
1、解耦合。数据库部分可交由专门的数据库管理人员去做,像前后端联合协作那样提供接口供后端调度。(这两天对后端开发又有了新的理解:作为前端和数据库之间数据转接的中间人。不论是哪种业务,后端架构如何发展,不都是为了数据走的更顺畅点吗?)作为后端开发人员,SQL是必备语言,但是如果条件允许,专业的事情交给专业的人来做。
看、未来
2021/12/20
8K0
mysql存储过程
CONCAT(person_no,"号犯人住", i , "号床位"); ---字符串拼接
用户5927264
2019/07/31
8.3K0
MySQL 存储过程
存储过程(Stored Procedure)是一种存储在数据库中的程序,可供外部程序调用的一种数据库对象。
恋喵大鲤鱼
2023/10/12
4570
MySQL 存储过程
Mysql存储过程
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
用户3467126
2019/08/29
6.8K0
Mysql存储过程
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。
Java架构师历程
2018/09/26
6.2K0

相似问题

MySQL存储过程优化

10

Mysql存储过程的查询优化

11

MYSQL存储过程插入失败

22

MySQL存储过程插入验证

12

MySQL存储过程插入问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档