Python 2.7 在Pygame中绘制连续线
pygame中是否有一个模块用于绘制连续线?我知道Python 2.7 在Pygame中绘制连续线,python-2.7,pygame,drawing,Python 2.7,Pygame,Drawing,pygame中是否有一个模块用于绘制连续线?我知道pygame.draw.line()和pygame.draw.circle(),这是我现在使用的最后一个,但是如果我在屏幕上快速绘制,而不是在线上绘制,它将导致明显的圆圈。任何人都可以帮忙吗?记住以前的位置,并使用pygame.draw.line()从旧位置到新位置绘制线 - 我的旧示例-使用键左/右更改移动点的方向 import pygame import math # === constants === (UPPER_CASE names)
pygame.draw.line()
和pygame.draw.circle()
,这是我现在使用的最后一个,但是如果我在屏幕上快速绘制,而不是在线上绘制,它将导致明显的圆圈。任何人都可以帮忙吗?记住以前的位置,并使用pygame.draw.line()
从旧位置到新位置绘制线
-
我的旧示例-使用键左/右
更改移动点的方向
import pygame
import math
# === constants === (UPPER_CASE names)
RED = (255, 0 , 0)
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
# === main ===
# --- init ---
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
screen_rect = screen.get_rect()
# --- objects ---
# convert tuple to list
pos_new = list(screen_rect.center)
pos_old = list(screen_rect.center)
speed = 5.0
angle = 0.0
# --- mainloop ---
clock = pygame.time.Clock()
running = True
while running:
# --- events ---
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
angle -= 10
if keys[pygame.K_RIGHT]:
angle += 10
# --- updates ---
if angle >= 360:
angle -= 360
elif angle < 0:
angle += 360
pos_new[0] += int(speed * math.cos(math.radians(angle)))
pos_new[1] += int(speed * math.sin(math.radians(angle)))
# --- draws ---
if pos_new != pos_old:
pygame.draw.line(screen, RED, pos_new, pos_old)
pos_old = pos_new[:]
pygame.display.flip()
# --- FPS ---
clock.tick(25)
# --- the end ---
pygame.quit()
导入pygame
输入数学
#===常数===(大写名称)
红色=(255,0,0)
屏幕宽度=800
屏幕高度=600
#==main===
#---初始化---
pygame.init()
screen=pygame.display.set_模式((屏幕宽度、屏幕高度))
screen\u rect=screen.get\u rect()
#---对象---
#将元组转换为列表
位置新=列表(屏幕正中央)
位置旧=列表(屏幕正中央)
速度=5.0
角度=0.0
#---主回路---
clock=pygame.time.clock()
运行=真
运行时:
#---事件---
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_退出:
运行=错误
keys=pygame.key.get_pressed()
如果键[pygame.K_左]:
角度-=10
如果键[pygame.K_RIGHT]:
角度+=10
#---更新---
如果角度>=360:
角度-=360
elif角度<0:
角度+=360
pos_new[0]+=int(速度*math.cos(数学弧度(角度)))
pos_new[1]+=int(速度*math.sin(数学弧度(角度)))
#---抽签---
如果位置是新的!=位置:
pygame.draw.line(屏幕、红色、新位置、旧位置)
pos_old=pos_new[:]
pygame.display.flip()
#---FPS---
时钟滴答作响(25)
#---结束---
pygame.quit()
(来源:)