我一直在学习Python,刚开始玩Pygame的编码。我目前的程序是一个游戏,角色是苍蝇,必须避免被苍蝇拍死亡。游戏必须首先在屏幕上的任意位置随机显示半透明的黄色正方形。这个正方形表示苍蝇在2秒内击中的位置,让玩家有时间飞出该击球区域。当苍蝇拍击时,我想要在暗淡广场的确切位置上向游戏中投射一个不透明的广场。这个正方形会在玩家出现时杀死玩家。尽管我计划显示消息并添加其他此类性质的东西,但不透明方块(或苍蝇拍)应终止游戏会话。我已经创建了两个正方形,但是我需要不透明的正方形来到半透明的正方形之后,并且位于相同的位置。每次罢工后,我希望广场消失,重复这个过程。如果任何人有任何的洞察力,我可以去1)在任意位置blinking半透明的广场和2)在2秒内有更黑暗的方块“罢工”相同的位置,然后消失和重复,我会非常感激。我尝试过使用time.sleep()函数,但它没有奏效。 非常感谢!如何在pygame中使矩形出现在另一个矩形之后?
(请原谅我有点乱码!)
import pygame, random, time, sys, math
from pygame.locals import *
pygame.init()
display_width = 800
display_height = 600
gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('Fly Dodger')
black = (0,0,0)
white = (255,255,255)
yellow = (255,255,0)
fly_width = 70
clock = pygame.time.Clock()
crashed = False
flyImg = pygame.image.load("Fly.png")
flyImg = pygame.transform.scale(flyImg, (80, 80))
#THe faintswatter is the faint image/square I want to appear first.
faintSwatter = pygame.image.load("faintswatter.png")
faintSwatter = pygame.transform.scale(faintSwatter, (400, 510))
#The realswatter is the square that appears after the fainter one, in the same position.
realswatter = pygame.image.load("swatter.png")
realswatter = pygame.transform.scale(realswatter, (400, 510))
windowImg = pygame.image.load("window.jpg")
windowImg = pygame.transform.scale(windowImg, (800,600))
pygame.display.update()
def fly(x,y):
gameDisplay.blit(flyImg, (x,y))
def border():
x_change = 0
y_change = 0
def swatter_Function(swatterx, swattery, swaterw, swaterh, color):
pygame.draw.rect(gameDisplay, color, [swatterx, swattery, swaterw, swaterh])
def things_dodged(count):
font = pygame.font.SysFont(None, 25)
text = font.render("Dodged: "+str(count), True, green)
gameDisplay.blit(text, (0,0))
def message_display(text):
largeText = pygame.font.Font("freesansbold.ttf",115)
TextSurf, TextRect = text_objects(text, largeText)
TextRect.center = ((display_width/2),(display_height/2))
gameDisplay.blit(TextSurf, TextRect)
def gameloop():
x = (display_width * .45)
y = (display_height * .4)
x_change = 0
y_change = 0
gameExit = False
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5
elif event.key == pygame.K_RIGHT:
x_change = 5
elif event.key == pygame.K_UP:
y_change = -5
elif event.key == pygame.K_DOWN:
y_change = 5
x += x_change
y += y_change
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
if event.type == pygame.KEYUP:
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
y_change = 0
gameDisplay.blit(windowImg, (0,0))
fly(x,y)
gameDisplay.blit(faintSwatter,(1,1))
gameDisplay.blit(realswatter, (2,2))
pygame.display.update()
if x > display_width - fly_width or x < 0:
gameExit = True
if y > display_height - fly_width or y < 0:
gameExit = True
pygame.display.update()
clock.tick(60)
gameloop()
pygame.quit()
quit()
非常感谢!它非常棒,这是完成这个游戏目标的好方法。特别是如果你是一个初学者,工作出色! – Chris