我重新努力使机芯工作得更好,这就是我现在所拥有的:
$ sort file.txt
aaa@aaa.com
aba@aaa.com
aba@abb.com
abc@abc.com
abc@abc.net
bbb@aaa.org
ccc@abb.com
当前
import pygame
from pygame.locals import *
pygame.init()
RED = (240, 0, 0)
x = y = 0
sizex = sizey = 600
screen = pygame.display.set_mode((sizex,sizey))
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == KEYDOWN: #
if event.key == K_LEFT:
x -= 25
elif event.key == K_RIGHT:
x += 25
elif event.key == K_UP:
y -= 25
elif event.key == K_DOWN:
y += 25
pygame.draw.rect(screen, RED, pygame.Rect(x,y,tilesize,tilesize))
pygame.display.flip()
clock.tick(100)
不会在屏幕上连续移动矩形。
我想要一种解决方案,可以一直将其移动到按下键为止。
答案 0 :(得分:1)
要使运动一直进行到按下另一个键(使用类似的操作)之前,可以使用velocity
变量来存储当前方向的速度(取决于您的个人喜好,可以是列表,元组,两个变量或您自己的class Velocity
)。
按下一个键时,将相应的速度设置为“移动”值,将所有其他速度设置为零。
# x and y are the respective positions when drawing; we are currently inside the event-handling loop
if event.type == KEYDOWN:
vel_x = vel_y = 0 # if you only want this to happen for arrow keys, do it here
if event.key == K_UP:
vel_y = -5
elif event.key == K_DOWN:
vel_y = 5
...
在循环之后,在绘制之前:
x += vel_x
y += vel_y
# you might want to check we're not outside the screen here
一些注意事项: