私はPythonを学び、Pygameでコーディングを始めました。私の現在のプログラムは、キャラクターがハエであるゲームです。キャラクターは、ハエの飛散によって殺されるのを避けなければなりません。ゲームはまず、スクリーン上の任意の場所に半透明の黄色の正方形をランダムに表示する必要があります。このスクエアは、2秒後にスワッターがどこに当たるかを表し、プレイヤーがそのストライクエリアから飛び出す時間を与えます。スワタが打つと、私は薄い正方形の正確な場所にゲームに不透明な広場をblitしたい。このスクエアが表示されている場合、その中にいる場合、このスクエアはプレイヤーを殺します。私はメッセージを表示し、このような性質のものを追加することを計画していますが、不透明な四角形(またはスワッピングストライク)はゲームセッションを終了する必要があります。私は既に2つの正方形を作成していますが、半透明のものを後にして同じ場所に来るには、不透明なものが必要です。それぞれのストライキの後、私は四角形が消えて、プロセスを繰り返すことを望みます。誰かが私がどのようにして1)ランダムな場所に半透明の四角形を描き、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