我一直在學習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