1. ホーム
  2. python

[解決済み】TypeError: 'int' 型のオブジェクトは len() を持たない - Python/Pygame

2022-02-11 18:45:37

質問

クッキークリッカーゲームを作っているのですが、クッキーを何枚持っているか表示する面があります。

以下は、テキストを描画するための私のコードです。

 def draw_text(self, text, font_name, size, color, x, y, align="nw"):
            font = pg.font.Font(font_name, size)
            text_surface = font.render(text, True, color)
            text_rect = text_surface.get_rect()
            self.screen.blit(text_surface, text_rect)

そして、ゲームループの新しい関数(新しいゲームが始まるとき用)の中で、変数を作りました。

def new(self):
        self.cookie_count = 0

そして最後に、描画機能です。

def draw(self):
    self.draw_text('Cookies: {}'.format(len(self.cookie_count)), self.cookie_font, 105, SKYBLUE, 325, HEIGHT * 3/4, align="nw")
    pg.display.update()

それなのに、プログラムを実行すると、こうなる。

TypeError: object of type 'int' has no len()

スコアカウンタと呼べるようなものを作るのは初めてです。しかし、なぜ

self.draw_text('Cookies: {}'.format(len(self.cookie_count))

エラーになるのですか?self.cookie_countの長さが表示されないのはなぜですか?

どうすればいいですか?

の値だけが欲しい場合 self.cookie_count を使用することができます。

self.draw_text('Cookies: {}'.format(self.cookie_count)

len() 関数は、配列などのオブジェクトに含まれる項目の数を返します。 int オブジェクトを作成します。