Python Pygame点击图像事件
我目前正在使用Python和PyGame开发一个游戏。我做了一个蛋精灵,点击它赚钱,但我不知道如何使图像可点击,所以你可以通过点击任何地方赚钱。 源代码:Python Pygame点击图像事件,python,pygame,Python,Pygame,我目前正在使用Python和PyGame开发一个游戏。我做了一个蛋精灵,点击它赚钱,但我不知道如何使图像可点击,所以你可以通过点击任何地方赚钱。 源代码: import pygame, sys, time from pygame.locals import * from millify import millify,prettify pygame.init() WHITE = 255,255,255 font = pygame.font.SysFont(None, 44) cpsecond =
import pygame, sys, time
from pygame.locals import *
from millify import millify,prettify
pygame.init()
WHITE = 255,255,255
font = pygame.font.SysFont(None, 44)
cpsecond = open("clickpersecond.txt", "r+")
cps = int(cpsecond.read())
baltotal = open("totalbal.txt", "r+")
totalbal = int(baltotal.read())
totalbalM = prettify(totalbal, '.')
ev = pygame.event.get()
clock = pygame.time.Clock()
w = 800
h = 600
screen = pygame.display.set_mode((w,h))
pygame.display.set_caption('Tap Simulator')
Loop = True
background = pygame.image.load("C:\\Users\\Lenovo\\Desktop\\Tap Simulator\\Background.jpg")
egg = pygame.image.load("C:\\Users\\Lenovo\\Desktop\\Tap Simulator\\egg.png")
resized_egg = pygame.transform.scale(egg, (282, 352))
text = font.render(f'Your total clicks are {totalbalM}', True, WHITE)
while Loop: # main game loop
for event in pygame.event.get():
if event.type == QUIT:
Loop = False
if event.type == MOUSEBUTTONDOWN: #detecting mouse click
totalbal += cps
totalbalM = prettify(totalbal, '.')
text = font.render(f'Your total clicks are {totalbalM}', True, WHITE)
print("Your total clicks are", totalbalM, end="\r")
#print(pygame.mouse.get_pos()) #to get mouse pos
screen.blit(background, (0,0))
screen.blit(text, (235,557))
screen.blit(resized_egg, (260,150))
pygame.display.flip()
pygame.display.update()
clock.tick(30)
with open("totalbal.txt", "w") as baltotal:
baltotal.write(str(totalbal))
baltotal.close
pygame.quit()
sys.exit()
使用和可检测矩形中的单击
为MOUSEBUTTONDOWN
生成的对象有两个属性,提供有关鼠标事件的信息pos
是存储单击位置的元组<代码>按钮存储单击的按钮
用于获取具有图像大小的矩形。矩形始终从(0,0)开始,因为曲面对象没有位置。曲面位于屏幕上的某个位置。矩形的位置可以通过关键字参数指定。例如,矩形的左上角可以用关键字参数topleft
指定:
while循环:#主游戏循环
对于pygame.event.get()中的事件:
如果event.type==退出:
循环=错误
如果event.type==MOUSEBUTTONDOWN:
egg\u rect=调整大小的\u egg.get\u rect(左上方=(260150))
如果鸡蛋直接碰撞点(事件位置):
总BAL+=cps
totalbalM=美化(totalbal,“.”)
text=font.render(f'您的总点击量为{totalbalM}',True,白色)
打印(“您的点击总数为”,totalbalM,end=“\r”)
# [...]