如何在游戏中修复浮点整数TypeError

问题描述

我正在制作一款名为Bunnies and Badgers的游戏,这是我到目前为止的代码

import pygame
from pygame.locals import *
pygame.init()
width,height = 640,480
screen = pygame.display.set_mode((width,height))
player = pygame.image.load("resources/images/dude.png")
grass = pygame.image.load("resources/images/grass.png")
castle = pygame.image.load("resources/images/castle.png")
while 1:
    screen.fill(0)
    screen.blit(player,(100,100))
    for x in range(width/grass.get_width()+1):
        for y in range(height/grass.get_height()+1):
            screen.blit(grass,(x*100,y*100))
    screen.blit(castle,(0,30))
    screen.blit(castle,135))
    screen.blit(castle,240))
    screen.blit(castle,345))
    pygame.display.flip()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit() 
            exit(0)

但是,当我运行模块时,出现此错误

Traceback (most recent call last):
  File "C:\Users\Ben\Documents\U Game Online\Games\Bunnies and Badgers\game.py",line 12,in <module>
    for x in range(width/grass.get_width()+1):
TypeError: 'float' object cannot be interpreted as an integer

我看不到带有错误给出的代码的任何错误

解决方法

范围函数需要一个整数参数。只需在调用range时将参数设置为int即可。

for x in range(int(width/grass.get_width()+1)):
        for y in range(int(height/grass.get_height()+1)):
            screen.blit(grass,(x*100,y*100))