python - 如何将每个圆圈连接到pygame的左上角?
问题描述
到目前为止,我有这段代码,并且需要在单击每个圆圈时从左上角画一条线。但是,我现在只有一个星座类型,而不是圆圈连接到下一个圆圈。
from pygame import *
init()
size = width, height = 650, 650
screen = display.set_mode(size)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
running = True
myClock = time.Clock()
prev_pos = None
# Game Loop
while running:
for e in event.get():
if e.type == QUIT:
running = False
if e.type == MOUSEBUTTONDOWN:
if e.button == 1:
if prev_pos != None:
draw.line(screen, GREEN, prev_pos, e.pos)
prev_pos = e.pos
draw.circle(screen, GREEN, e.pos, 10)
if e.button == 3:
prev_pos = None
screen.fill(BLACK)
display.flip()
myClock.tick(60)
quit()
解决方案
画面左上角是(0,0)
。画线功能文档可以在这里找到:https ://www.pygame.org/docs/ref/draw.html#pygame.draw.line
所以只需更改您的画线代码:
TOP_LEFT = ( 0, 0 )
...
draw.line( screen, GREEN, TOP_LEFT, e.pos )
会给你一条从左上角到每个圆圈中心的线。
所有这些操作都非常简单,如果您花很短的时间阅读文档,它将真正帮助您学习 - 至少对于您尝试实现的操作而言。从 SO 复制和粘贴代码并不是学习任何东西的好方法。
推荐阅读
- java - int 和 Integer 影响并发结果
- php - fpdf 库在 WAMP 服务器上不起作用
- android - 谷歌云端硬盘同意屏幕卡住
- powershell - 如何从域范围的 PowerShell 脚本中排除单个特定机器
- java - 当孩子和父母都使用 JPA Hibernate 存储在同一个表中时,在当前和所有连续的父母中搜索提供的值
- sql-server - 如何从一些非常大(1GB -5GB)的供应商的新旧excel表中插入?
- firebase - 如何在 MVVM 模式中结合 Cloud Firestore 和 RXJava2
- java - 如何模拟静态变量,该变量通过对该静态变量的静态方法调用进行初始化
- java - 如何在android中比较两个时间(12小时格式)
- vue.js - Vue.js:如何防止 `vue-cli-service --modern` 构建遗留包?