簡體   English   中英

需要解密 integer 時出錯

[英]There is an error Decrypting an integer is required

我一直在按照本教程使用 pygame 構建一個簡單的 2D 游戲。 我已經檢查了多次我的代碼,但我仍然無法弄清楚這個錯誤意味着什么

import pygame as pygame  

pygame.init() 
window = pygame.display.set_mode((500, 500))
pygame.display.set_caption('First Game')
pygame.display.update()

這里我設置了所有命令以響應用戶的輸入

walkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'),
             pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'),
             pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]
walkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'),
            pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'),
            pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]
bg = pygame.image.load('bg.jpg')
char = pygame.image.load('standing.png')

clock = pygame.time.Clock()
x = 50
y = 50
width = 64
height = 64
vel = 5

isJump = False
jumpCount = 10

left = False
right = False
walkCount = 0

run = True

在這里,我定義了每個動作的幀和相應的圖片。 問題來自這里,但我不明白為什么

def redrawgamewindow():
    global walkCount

window.blit(bg, (0, 0))
pygame.draw.rect(window, (255, 255, 255), (x, y, width, height))


if walkCount + 1 >= 27:
    walkCount = 0
if left:
    window.blit(walkLeft[walkCount // 3], (x, y))
    walkCount += 1
elif right:
    window.blit(walkRight[walkCount // 3], (x, y))
    walkCount += 1
else:
    window.blit(char, (x, y))
    walkCount = 0
pygame.display.update() 


while run:
    clock.tick(27)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT] and x > vel:
            x -= vel
            right = False
            left = True
        elif keys[pygame.K_RIGHT] and x < 500 - (width + vel):
            x += vel
            right = True
            left = False
        else:
            right = False
            left = False
            walkCount = 0
        if not isJump:
            if keys[pygame.K_UP] and y > vel:
                y -= vel
            if keys[pygame.K_DOWN] and y < 500 - (height + vel):
                y += vel
            if keys[pygame.K_SPACE]:
                isJump = True
                right = False
                left = False
        else:
            if jumpCount >= -10:
                neg = 1
                if jumpCount < 0:
                    neg = -1
                y -= (jumpCount * abs( jumpCount))*0.5
                jumpCount -= 1
            else:
                isJump = False
                jumpCount = 10

        redrawgamewindow()
pygame.quit()

顯示的錯誤是

/Users/Thomas.V/Documents/Documents/Perso/Coding /Python /Pycharm Projects/Pygame.py:40: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated and may be removed in a future version of Python.
  pygame.draw.rect(window, (255, 255, 255), (x, y, width, height))

警告是因為y不是整數值,因為

y -= (jumpCount * abs( jumpCount))*0.5

通過舍入y來消除警告(參見round ):

pygame.draw.rect(window, (255, 255, 255), (x, round(y), width, height))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM