pygame按键约定

问题描述

我想使用w a s d键移动而不是使用箭头键 但是我不知道如何用下面的代码来做到这一点。我要替换pygame.KEYDOWN 带有s的按钮,但我不知道该怎么做。

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_LEFT:
        Pacman.changespeed(-30,0)
    if event.key == pygame.K_RIGHT:
        Pacman.changespeed(30,0)
    if event.key == pygame.K_UP:
        Pacman.changespeed(0,-30)
    if event.key == pygame.K_DOWN:
        Pacman.changespeed(0,30)

解决方法

您不需要更改事件类型。 w a s d Dim dsDataSet As New DataSet Dim ConnectionString As String Dim daDataAdapter As OleDb.OleDbDataAdapter Dim dBaseConnection As New System.Data.OleDb.OleDbConnection Dim strFilePath As String = gloStrPath & "data" Dim strDBF As String = "HISTORY.DBF" Try ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilePath & ";Extended Properties=dBase III;" dBaseConnection = New System.Data.OleDb.OleDbConnection(ConnectionString) If dBaseConnection.State = 0 Then dBaseConnection.Open() Catch ex As Exception MsgBox(ex.Message,16,"Error") End Try Try daDataAdapter = New OleDb.OleDbDataAdapter("select * from " & strDBF,dBaseConnection) daDataAdapter.Fill(dsDataSet,"Name") Catch ex As Exception MsgBox(ex.Message,"Error") End Try pygame.K_w表示, pygame.K_apygame.K_s,但事件类型仍为pygame.K_d

pygame.KEYDOWN

注意:if event.type == pygame.KEYDOWN: if event.key == pygame.K_d: Pacman.changespeed(-30,0) if event.key == pygame.K_a: Pacman.changespeed(30,0) if event.key == pygame.K_w: Pacman.changespeed(0,-30) if event.key == pygame.K_s: Pacman.changespeed(0,30) 并不意味着“向下”键,而是按下了一个键。按下键时会发生KEYDOWN事件,而释放键时会发生KEYDOWN事件。参见pygame.eventpygame.key