0

私はPythonを使ってゲームを作ろうとしていたので、これはコードです:

# 1 - Import library
import pygame
from pygame.locals import *

# 2 - Initialize the game
pygame.init()
width, height = 640, 480
screen=pygame.display.set_mode((width, height))

# 3 - Load images
player = pygame.image.load("resources/images/dude.png")
grass = pygame.image.load("resources/images/grass.png")
castle = pygame.image.load("resources/images/castle.png") 

# 4 - keep looping through
while 1:
    # 5 - clear the screen before drawing it again
    screen.fill(0)
    # 6 - draw the screen elements
    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,(0,135))
       screen.blit(castle,(0,240))
       screen.blit(castle,(0,345 ))
       screen.blit(player, (100,100))
       # 7 - update the screen
       pygame.display.flip()
       # 8 - loop through the events
       for event in pygame.event.get():
       # check if the event is the X button 
        if event.type==pygame.QUIT:
         # if it is quit the game
         pygame.quit() 
          exit(0)

これは私が得ているエラーですが、解決方法がわかりません:

Traceback (most recent call last):
  File "C:/Python32/Game 1/game.py", line 19, in <module>
    for x in range(width/grass.get_width()+1):
TypeError: 'float' object cannot be interpreted as an integer
4

1 に答える 1

0

範囲関数には、float や文字列ではなく整数が必要です。float は、int()関数を使用して整数に変換できます。

したがって、代わりに:

for x in range(width/grass.get_width()+1):

使用する:

for x in range(int(width/grass.get_width()+1)):

例えば:

print int(5.145)
>>> 5
于 2013-09-29T13:26:54.740 に答える