0

ボックス内のダイアログを文字ごとに印刷しようとしています (ポケモンやほとんどの RPG など)。次のように、fontType.render 変数から文字列を取得する方法があるかどうか疑問に思っています。

self.Coffee = self.fontType.render("Ooh! French Vanilla!", 0, (0,0,0,))

私はやってみました:

self.Coffee[0]

..しかし、私は得ました:

TypeError: 'pygame.Surface' object has no attribute '__getitem__'

私はこのような文字列の変数を作成することを避けようとしています (うまくいくかもしれませんが、コードの残りの部分をどのように行うかについては、ずさんであるか、あまりにも面倒です):

dialogue = "Ooh! French Vanilla!"
self.Coffee = self.fontType.render(dialogue, 0, (0,0,0))

そうでない場合でも、私は自分自身を十分に明確にしたことを願っています。ありがとう。

4

1 に答える 1

2

pygame.Surfaceドキュメントは、オブジェクトが本質的にテキストが描画されるキャンバスであることを示唆しています。テキストを配置すると、それはテキストのイメージになるため、一度ペイントするとそれを取得する実際的な方法はありません (不可能ではなく、実際的でないだけではありません)。あなたが提案したように、ダイアログテキストを変数に保存するアプローチを採用します。とにかく、画面上のプロンプトまたはメッセージとしてテキストを投稿するときは、とにかくこれを行う傾向があります。私はむしろこれを見たい:

dialogue = 'Ooh! French Vanilla!'
self.Coffee = self.fontType.render(dialogue, 0, (0,0,0))

これより:

self.Coffee = self.fontType.render('Some really long dialogue that might make me want this on two lines', 0, (0,0,0))
于 2013-09-04T15:50:57.587 に答える