質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1074閲覧

【pygame】pygame.Surfaceがわからない

ITYAA

総合スコア2

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/08/23 11:50

編集2022/08/23 11:56

解決したいこと

pygameでわんこそばを食べるゲームを作っており、
下記のコードを実行したところ、次のようなエラーメッセージが出ました。

error

1File "(保存場所)", line 162, in <module> 2 garge() 3TypeError: 'pygame.Surface' object is not callable

pygame.Surfaceの正体を知りたい(?).

コード

Python

1import pygame as pg,sys 2import time as tm 3pg.init() 4pg.mixer.init() 5screen=pg.display.set_mode((800,800)) 6pg.display.set_caption("わんこそば食べ過ぎゲーム") 7#満腹ゲージ 8g0=pg.image.load("ゲージlv0.png") 9g1=pg.image.load("ゲージlv1.png") 10g2=pg.image.load("ゲージlv2.png") 11g3=pg.image.load("ゲージlv3.png") 12g4=pg.image.load("ゲージlv4.png") 13g5=pg.image.load("ゲージlv5.png") 14g6=pg.image.load("ゲージlv6.png") 15g7=pg.image.load("ゲージlv7.png") 16g8=pg.image.load("ゲージlv8.png") 17g9=pg.image.load("ゲージlv9.png") 18g10=pg.image.load("ゲージlv10.png") 19#わんこそば 20wanko=pg.image.load("わんこそば.png") 21wanko=pg.transform.scale(wanko,(300,200)) 22wankowasabi=pg.image.load("わんこそばワサビ山盛り.png") 23wankowasabi=pg.transform.scale(wankowasabi,(300,200)) 24#わんこそば食べる人 25hito=pg.image.load("わんこそば食べる人.png") 26hito=pg.transform.scale(hito,(300,150)) 27#店員さん 28staff=pg.image.load("店員さん.png") 29staff=pg.transform.scale(staff,(350,200)) 30#テーブル 31table=pg.image.load("テーブル.png") 32#text 33font=pg.font.Font("cinecaption226.ttf",50) 34font2=pg.font.Font("cinecaption226.ttf",20) 35text=font.render("わんこそばを連打しよう!",True,pg.Color("BLACK")) 36text2=font2.render("※わさび入りに注意",True,pg.Color("BLACK")) 37sobaoto=pg.mixer.music.load("drinking_a_soup.mp3") 38GAMEOVER=pg.image.load("GAMEOVER.png") 39GAMEOVER_SOUND=pg.mixer.music.load("きらきら.mp3") 40#エラーが指しているgarge()はここ 41def garge(): 42 if garge==g0: 43 garge=g0 44 elif garge==g1: 45 time.wait(1) 46 garge=g0 47 elif garge==g2: 48 time.wait(1) 49 garge=g1 50 time.wait(1) 51 garge=g0 52 elif garge==g3: 53 time.wait(1) 54 garge=g2 55 time.wait(1) 56 garge=g1 57 time.wait(1) 58 garge=g0 59 elif garge==g4: 60 time.wait(1) 61 garge=g3 62 time.wait(1) 63 garge=g2 64 time.wait(1) 65 garge=g1 66 time.wait(1) 67 garge=g0 68 elif garge==g5: 69 time.wait(1) 70 garge=g4 71 time.wait(1) 72 garge=g3 73 time.wait(1) 74 garge=g2 75 time.wait(1) 76 garge=g1 77 time.wait(1) 78 garge=g0 79 elif garge==g6: 80 time.wait(1) 81 garge=g5 82 time.wait(1) 83 garge=g4 84 time.wait(1) 85 garge=g3 86 time.wait(1) 87 garge=g2 88 time.wait(1) 89 garge=g1 90 time.wait(1) 91 garge=g0 92 elif garge==g7: 93 time.wait(1) 94 garge=g6 95 time.wait(1) 96 garge=g5 97 time.wait(1) 98 garge=g4 99 time.wait(1) 100 garge=g3 101 time.wait(1) 102 garge=g2 103 time.wait(1) 104 garge=g1 105 time.wait(1) 106 garge=g0 107 elif garge==g8: 108 time.wait(1) 109 garge=g7 110 time.wait(1) 111 garge=g6 112 time.wait(1) 113 garge=g5 114 time.wait(1) 115 garge=g4 116 time.wait(1) 117 garge=g3 118 time.wait(1) 119 garge=g2 120 time.wait(1) 121 garge=g1 122 time.wait(1) 123 garge=g0 124 elif garge==g9: 125 time.wait(1) 126 garge=g8 127 time.wait(1) 128 garge=g7 129 time.wait(1) 130 garge=g6 131 time.wait(1) 132 garge=g5 133 time.wait(1) 134 garge=g4 135 time.wait(1) 136 garge=g3 137 time.wait(1) 138 garge=g2 139 time.wait(1) 140 garge=g1 141 time.wait(1) 142 garge=g0 143 elif garge==g10: 144 page=gameover 145 146def gameover(): 147 screen.blit(GAMEOVER,(0,0)) 148 pg.mixer.music.play(2) 149 150garge=g0 151pushcount=0 152while True: 153 w_rect=pg.Rect(245,500,300,200) 154 screen.fill(pg.Color("WHITE")) 155 screen.blit(hito,(210,390)) 156 screen.blit(table,(100,500)) 157 screen.blit(wanko,w_rect) 158 screen.blit(staff,(30,600)) 159 screen.blit(text,(100,100)) 160 screen.blit(text2,(480,155)) 161 screen.blit(garge,(735,290)) 162 garge() 163 pg.display.update() 164 pg.time.Clock().tick(60) 165 if page==gameover: 166 gameover() 167 for event in pg.event.get(): 168 if event.type == pg.QUIT: 169 pg.quit() 170 sys.exit() 171 if event.type==pg.MOUSEBUTTONDOWN: 172 if w_rect.collidepoint(event.pos): 173 pushcount=pushcount+1 174 pg.mixer.music.play(1)

試したこと

pygame.Surfaceについてめちゃくちゃ調べましたが
いまいちよくわかりませんでした
解決方法を教えてください。

長コードすみません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

gargeという変数が何を表わしているのかよくわかりません。 もしかして2つのものを同じ変数にしていませんか?

1つめ: 関数garge
def garge():
2つめ: g0で初期化されている変数
garge=g0

pythonでは、関数名と変数名は同じ変数ですので、2つめでg0が代入された時点で、1つめで定義された関数は消えてしまいます。
なので、その後で、「garge()」 と関数として呼ぼうとしても、gargeはすでに関数ではないので、質問のエラーになります。

投稿2022/08/23 14:19

TakaiY

総合スコア12765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ITYAA

2022/08/23 23:00

ありがとうございます!関数gargeと初期化しているgargeを別の名前二したらできました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問