gpt4 book ai didi

python - 有没有办法在运行 pygame 的同时也可以运行控制台?

转载 作者:太空狗 更新时间:2023-10-30 03:03:56 24 4
gpt4 key购买 nike

我想知道是否有一种方法,在 python 中,当我的 games.screen.mainloop() 中的图形片段正在运行时,我是否可以做一些事情,比如从控制台通过 raw_input() 获取用户输入。

最佳答案

是的,看看下面的例子:

import pygame
import threading
import queue

pygame.init()
screen = pygame.display.set_mode((300, 300))
quit_game = False

commands = queue.Queue()

pos = pygame.Vector2(10, 10)

m = {'w': (0, -10),
'a': (-10, 0),
's': (0, 10),
'd': (10, 0)}

class Input(threading.Thread):
def run(self):
while not quit_game:
command = input()
commands.put(command)

i = Input()
i.start()

old_pos = []

while not quit_game:
try:
command = commands.get(False)
except queue.Empty:
command = None

if command in m:
old_pos.append((int(pos.x), int(pos.y)))
pos += m[command]

for e in pygame.event.get():
if e.type == pygame.QUIT:
print("press enter to exit")
quit_game = True

screen.fill((0, 0, 0))
for p in old_pos:
pygame.draw.circle(screen, (75, 0, 0), p, 10, 2)
pygame.draw.circle(screen, (200, 0, 0), (int(pos.x), int(pos.y)), 10, 2)
pygame.display.flip()

i.join()

它创建了一个红色的小圆圈。您可以通过在控制台中输入 wasd 来移动它。

enter image description here

关于python - 有没有办法在运行 pygame 的同时也可以运行控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17597233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com