0

私は、「プレーヤー」(最も右にある月としてスポーンする) が「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

4

2 に答える 2

0

次のインデントを変更する必要があります。

     if direction == 'down':
                enemyy += 7

今は中にありますfor event in pygame.event.get():

于 2013-11-13T23:22:00.433 に答える