私は、「プレーヤー」(最も右にある月としてスポーンする) が「WASD」キーを使用して動き回ることができ、敵が画面の上部から落ちてプレーヤーを攻撃して終了するゲームを作成しようとしています。ゲーム。私は現在、割り当てのためにこれを行っており、これを行うことが可能かどうかを確認するテストをセットアップしました。これまでのところ、「WASD」キーで制御可能な「プレイヤー」オブジェクトを作成できました。プレイヤーがゲームをプレイするために「スペース」を押す必要がある画面を作成します。敵を画面下の「Y」軸にスムーズに落とすことができずに困っています。ユーザーがキーを押したり離したりした場合にのみ、画像が画面を下に移動します。
#import necessary modules and pygame.
import pygame, sys, random
from pygame.locals import *
#set global variables
pygame.init()
WINDOWWIDTH = 800
WINDOWHEIGHT = 800
BACKGROUNDCOLOUR = (255,255,255)
TEXTCOLOUR = (0,0,0)
FPS = 30
ENEMYMINSIZE = 10
BOMBSAWAY = -1
ENEMYMAXSIZE = 40
ENEMYMINSPEED = 1
ENEMYMAXSPEED = 10
ADDNEWENEMYRATE = 5
PLAYERMOVERATE = 5
FSIZE = 48
BLUE = (0,0,255)
global PLAY
PLAY = False
global fpsClock
fpsClock = pygame.time.Clock()
# set up pygame and GUI
MainClock = pygame.time.Clock()
windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
windowSurface.fill(BACKGROUNDCOLOUR)
pygame.display.set_caption('Bubble Dash')
enemy = pygame.image.load('player.jpg')
char = pygame.image.load('player.jpg')
# set up fonts
basicFont = pygame.font.SysFont(None, 48)
# set up the text
text = basicFont.render('Press any key to play!', True, (255,255,0))
textRect = text.get_rect()
textRect.centerx = windowSurface.get_rect().centerx
textRect.centery = windowSurface.get_rect().centery
# draw the text onto the surface
# set up x and y coordinates
# music
windowSurface.blit(text, textRect)
def playgame(PLAY):
x,y = 0,0
movex,movey = 0,0
charx=300
chary=200
direction = 'down'
enemyx= 10
enemyy=10
while PLAY:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == ord('m'):
pygame.mixer.music.stop()
if event.key == ord('n'):
pygame.mixer.music.play()
if event.key == ord('a'):
movex = -0.5
if event.key == ord('d'):
movex = 0.5
if event.key == ord('w'):
movey = -0.5
if event.key == ord('s'):
movey = 0.5
if event.type ==KEYUP:
if event.key == ord('a'):
movex = 0
if event.key == ord('d'):
movex = 0
if event.key == ord('w'):
movey = 0
if event.key == ord('s'):
movey = 0
if direction == 'down':
enemyy += 7
windowSurface.fill(BLUE)
windowSurface.blit(char, (charx, chary))
windowSurface.blit(enemy, (enemyx, enemyy))
pygame.display.update()
charx+=movex
chary+=movey
def playertopresskey(PLAY):
while True: # main game loop
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_SPACE:
PLAY = True
if PLAY == True:
playgame(PLAY)
pygame.display.update()
playertopresskey(PLAY)
ユーザーがキーを押したり、キーを押したり、画面上でマウスを動かしたりする必要なく、「敵」オブジェクトが上から落ちるようにしたいと思います。むしろ、「敵」は上から落ちるだけです。サブルーチンが呼び出されるとすぐに。
現時点では私用に設定されているため、少し調整する必要があるかもしれませんが、気になる部分をいくつか削除しました。うまくいけば、誰かが私を助けることができます。ありがとう。
以下は私のものに似た画像へのリンクです。「char」変数と「enemy」変数の両方をダウンロードしてコードに置き換えて、現在コースにアクセスできないため、これを自分で表示できます。 http://www.roleplaygateway.com/roleplay/the-five-elements/characters/miss-joy/image