第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

無法讓 Python Pygame 對(duì)象改變方向

無法讓 Python Pygame 對(duì)象改變方向

不負(fù)相思意 2021-08-14 12:53:53
我無法在 Pygame 中獲取我的對(duì)象來改變我的代碼方向。import pygamepygame.init()width = 900height = 700background_image = pygame.image.load("board.png")background_image = pygame.transform.scale(background_image, (900, 700))virus_pic = pygame.image.load("virus.png")trojanvirus_pic = pygame.image.load("trojan_virus.png")armouredvirus_pic = pygame.image.load("armoured_virus.png")antivirus_pic = pygame.image.load("antivirus.png")trojanantivirus_pic = pygame.image.load("trojan_antivirus.png")armouredantivirus_pic = pygame.image.load("armoured_antivirus.png")screen = pygame.display.set_mode((width, height))pygame.display.set_caption("Anti Virus")#def anitvirus():def virus(x_virus,y_virus):    screen.blit(virus_pic, (x_virus, y_virus))def intro():    background_image = pygame.image.load("intro_background.png")    background_image = pygame.transform.scale(background_image, (900, 700))    logo_image = pygame.image.load("logo.png")    logo_image = pygame.transform.scale(logo_image, (600, 200))    pygame.display.update()    running = True    while running:        for event in pygame.event.get():            if event.type == pygame.QUIT:                running = False                pygame.quit()            if event.type == pygame.KEYDOWN:                if event.key == pygame.K_SPACE:                    main()        screen.blit(background_image, (0, 0))        screen.blit(logo_image, (width/2-300,100))        pygame.display.update()def main():    x_virus = 0    y_virus = 70    pygame.display.update()    running = True    while running:        for event in pygame.event.get():            if event.type == pygame.QUIT:                running = False                pygame.quit()        screen.blit(background_image, (0, 0))        if x_virus != 320:            x_virus += 1            virus(x_virus,y_virus)這是進(jìn)行游戲移動(dòng)的代碼^        pygame.display.update()intro()我不知道是否所有的 if 語句都是最有效的方法。我嘗試了不同的東西,但 if 語句似乎在大多數(shù)情況下都有效。我將不勝感激任何幫助。謝謝。
查看完整描述

1 回答

?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

您沒有正確地對(duì)圖像進(jìn)行 blitting。我們來看看這個(gè)函數(shù):


def virus(x_virus,y_virus):

    screen.blit(virus_pic, (x_virus, y_virus))

你接受 x 和 y 坐標(biāo)并嘗試 blitvirus_pic到screen. 問題是你沒有考慮這里的不同范圍,你需要傳遞screen和virus_pic作為參數(shù),否則你的函數(shù)不知道它們是什么,所以改變你的函數(shù)看起來像這樣


def virus(screen,virus_pic,x_virus,y_virus):

    screen.blit(virus_pic, (x_virus, y_virus))

然后在您的main()函數(shù)中更改相應(yīng)的代碼部分。我也冒昧地將其簡(jiǎn)化了一點(diǎn)


    if x_virus != 320:

        x_virus += 1


    if x_virus == 320:

        if y_virus != 400:

            y_virus += 1


    if y_virus == 400:

        if x_virus != 500:

            x_virus += .5


    if x_virus == 500:

        if y_virus != 10:

            y_virus -= 1


    virus(screen,virus_pic,x_virus,y_virus)

讓我知道事情的后續(xù)!


編輯:


它不改變方向的原因是因?yàn)樵诿恳粠淖鴺?biāo)每次都只被相同的精確值改變,因此,速度向量保持不變,你只能看到一個(gè)方向的運(yùn)動(dòng)。


您需要找到一種方法來使這些更改具有動(dòng)態(tài)性。


查看完整回答
反對(duì) 回復(fù) 2021-08-14
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)