问题描述
我正在制作一款名为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))