我想点击这两个圆球,并把它们拖到鼠标当前的位置,但它不工作。你知道吗
我只想用鼠标点击并拖动球。你知道吗
一些代码没有添加(导入pygame、绘制显示、颜色等)
import pygame
window = pygame.display.set_mode((800,400))
clock = pygame.time.Clock()
##bg = pygame.image.load("bgpool.png")
##window.blit(bg,(0,0))
black = (0,0,0)
yellow = (255,255,0)
class Circle:
def __init__(self,x,y,color,radius):
self.x = x
self.y = y
self.color = color
self.radius = radius
pygame.draw.circle(window, color,(x,y),radius)
def quitgame():
pygame.quit()
quit()
def loop():
cikis = False
while not cikis:
for event in pygame.event.get():
if event.type == pygame.QUIT:
cikis = True
pygame.quit()
quit()
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
bas = pygame.MOUSEBUTTONDOWN
window.fill((255,255,255))
main_circle = Circle(75,175,black,10)
aim_circle = Circle(375,175,yellow,10)
if click[0] == 1:
if mouse[0] >= main_circle.x and mouse[0] <= main_circle.x + main_circle.radius:
if mouse[1] >= main_circle.y and mouse[1] <= main_circle.y + main_circle.radius:
if click[0] == 1:
main_circle.x == mouse[0]
main_circle.y == mouse[1]
clock.tick(120)
pygame.display.update()
loop()
pygame.quit()
quit()
虽然
click = pygame.mouse.get_pressed()
可以工作,但是非常推荐使用Pygame的事件,就像您为pygame.QUIT
所做的那样。你知道吗因为您没有提供太多的代码,所以我添加了最小值以使代码可以运行,并且我对每个修改都进行了注释:
注意:在每次游戏循环迭代中实例化一个新的
Circle
对象是个坏主意,这会白白消耗大量CPU。我相信你这么做是因为你把你的循环绘制调用放在里面,但你真的应该把它移到循环中。你知道吗相关问题 更多 >
编程相关推荐