所以我得到了raspi 3和簡單的8x8 LED矩陣。在玩完它之後,我決定用pygame的事件做一個簡單的蛇遊戲(在那個矩陣上顯示),我之前沒有使用pygame的經驗。除了LED矩陣之外,沒有連接屏幕/顯示器。通過SSH Pygame不註冊按鍵(樹莓派3)
所以剛開始的問題是「pygame.error:視頻系統未初始化」,但我認爲我得到它固定通過設置環境變量: os.putenv('DISPLAY', ':0.0')
現在,我得到它的工作我運行它...沒有任何事情發生,就像沒有註冊按鍵一樣。 Just this "junk", I don't know how to call it LED矩陣上的點不移動。如果我改變蛇的x或y位置,它會按照預期移動。
我的代碼:
#!/usr/bin/python2
import pygame
import max7219.led as led
from max7219.font import proportional, SINCLAIR_FONT, TINY_FONT, CP437_FONT
import numpy as nqp
import os
SIZE = (8, 8)
class Board:
def __init__(self, size, snake):
"Board object for snake game"
self.matrix = np.zeros(size, dtype=np.int8)
self.device = led.matrix()
self.snake = snake
def draw(self):
#add snake
self.matrix = np.zeros(SIZE, dtype=np.int8)
self.matrix[self.snake.x][self.snake.y] = 1
for x in range(8):
for y in range(8):
self.device.pixel(x, y, self.matrix[x][y], redraw=False)
self.device.flush()
def light(self, x, y):
"light specified pixel"
self.matrix[x][y] = 1
def dim(self, x, y):
"off specified pixel"
self.matrix[x][y] = 0
class Snake:
def __init__(self):
"Object representing an ingame snake"
self.length = 1
self.x = 3
self.y = 3
if __name__=="__main__":
os.putenv('DISPLAY', ':0.0')
pygame.init()
snake = Snake()
board = Board(SIZE, snake)
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
snake.y -= 1
elif event.key == pygame.K_DOWN:
snake.y += 1
elif event.key == pygame.K_LEFT:
snake.x -= 1
elif event.key == pygame.K_RIGHT:
snake.x += 1
board.draw()
我使用pygame的,因爲我不知道別的(好吧,我不能使用pygame的兩種,但我只是不知道任何替代品)。如果可以做得更簡單,我會很樂意去做。先謝謝你!
看起來你使用的是PuTTY?看看[this](http://superuser.com/q/119792/152529)和[this](http://unix.stackexchange.com/q/12755),瞭解如何讓X11轉發設置辦法。 – Kupiakos