亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Pygame 中的精靈現在不繪制,而是提前加載的?

為什么 Pygame 中的精靈現在不繪制,而是提前加載的?

慕碼人8056858 2023-10-26 17:01:59
因此,我的代碼中的“bullet(或laser.png)”精靈在運行時不會繪制。我在代碼中破壞了一些東西,試圖解決另一個問題,即精靈留下了痕跡。我嘗試了多種方法,但最終破壞了我的代碼(抱歉,我是 pygame 新手,無論如何,這可能是一個愚蠢的問題)。我之前還定義了所有變量def redrawGameWindow(win, HeroX,HeroY):    win.blit(bg, (0,0))    win.blit(HeroSprite, (HeroX, HeroY))    win.blit(EnemySprite, (EnemyX, EnemyY))    pygame.draw.rect(bg, (211,211,211), (430 - 5, 25 - 5, EnemyHealth + 10, 30 + 10))    pygame.draw.rect(bg, (255,0,0), (430, 25, EnemyHealth, 30))    pygame.draw.rect(bg, (211,211,211), (430 - 5, 665 - 5, EnemyHealth + 10, 30 + 10))    pygame.draw.rect(bg, (0,255,0), (430, 665, PlayerHealth, 30))    pygame.display.update()def fire_bullet(x, y):    global BulletState    BulletState = "fire"    win.blit(Laser, (BulletX,BulletY))while GameRun:    clock.tick(60)    pressed = pygame.key.get_pressed()    EnemyX += EnemyVel    if EnemyX <= 0 :        EnemyVel = 5    elif EnemyX >= winX - 60:        EnemyVel = -5    if pressed[pygame.K_LEFT]:        HeroX -= vel if HeroX > 0 else 0    elif pressed[pygame.K_RIGHT]:        HeroX += vel if HeroX < winX - 57 else 0    if pressed[pygame.K_SPACE]:        if BulletState == "ready" :            BulletX =  HeroX            fire_bullet(BulletX, BulletY)    for event in pygame.event.get():        if event.type == pygame.QUIT:            GameRun = False    if BulletY <= 0:        BulletY = HeroY        BulletState = "ready"    if BulletState == "fire":        fire_bullet(BulletX, BulletY)        BulletY -= BulletVel    redrawGameWindow(win, HeroX, HeroY)pygame.quit()
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

您正在調用fire_bullet繪制子彈的函數,但之后在更新顯示之前您正在調用redrawGameWindow覆蓋所有內容的函數。



查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號