【Pyxelでゲーム開発】画面にテキストの表示を実装する

Pyxel
スポンサーリンク

実装する内容

本記事では下記の内容について、実装コードとその解説を紹介します。

  • 画面にテキストを表示する
  • 動的にテキストを変更する

スポンサーリンク

画面にテキストを表示する

実装コード

import pyxel

class App:
    def __init__(self):
        pyxel.init(150, 150)
        pyxel.run(self.update, self.draw)

    def update(self):
        pass


    def draw(self):
        pyxel.text(50, 50, "Hello World!", 2)


App()

実行結果

解説

文字を表示している関数はpyxel.text()です。
pyxel.text()を使用するための引数は下のようになります。

  • 第1引数:x座標
  • 第2引数:y座標
  • 第3引数:表示するテキスト(文字列)
  • 第4引数:テキストの色

実装コードの例では、

『x座標:50、y座標:50の位置に、Hello World!の文字を2の色で表示する』

という意味になります。

色の番号については、pyxelの公式サイトのカラーパレットを参照してください。
0~15の16色を使用することができます。

テキスト表示の注意点として、日本語は使用できません。

使用できるのは、

  • 英数字
  • 記号

です。

スポンサーリンク

動的にテキストを変更する

実装コード

import pyxel

class App:
    def __init__(self):
        pyxel.init(150, 150)
        pyxel.run(self.update, self.draw)

    def update(self):
        count = pyxel.frame_count % 60
        if count < 30:
            self.text = "Pyxel"
            self.color = 3
        else:
            self.text = "Game"
            self.color = 4


    def draw(self):
        pyxel.cls(0)
        pyxel.text(50, 50, self.text, self.color)


App()

実行結果

解説

テキストを動的に切り替えるには、変数を使ってpyxel.text()の引数に入れましょう。

今回の実装コードでは、30フレーム毎にテキストの文字列と色を変えるようにしました。

テキストを切り替える点で気をつけることは、表示させる前に画面をクリアすることです。
でないと、前に表示していた文字の上からさらに次の文字が表示されて、何が書いているかわからなくなります。

今回は、文字の位置を固定していましたが、変数を使って同じように実装すれば、様々な場所に文字を表示をすることができます。

コメント

タイトルとURLをコピーしました