<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Pyxel on Xainome Blog</title>
    <link>https://xainome-blog.pages.dev/tags/pyxel/</link>
    <description>Recent content in Pyxel on Xainome Blog</description>
    <generator>Hugo</generator>
    <language>ja-JP</language>
    <lastBuildDate>Sun, 02 Mar 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://xainome-blog.pages.dev/tags/pyxel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cursorの話題に乗り遅れたけどpyxelの修正に使ってみたよ</title>
      <link>https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/</link>
      <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/</guid>
      <description>&lt;h2 id=&#34;cursorを使ってみた&#34;&gt;Cursorを使ってみた&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cursor.com/pricing&#34;&gt;Cursor&lt;/a&gt;が凄いとだいぶ前に話題になりましたが、重い腰を上げてようやく使ってみました。&lt;/p&gt;
&lt;p&gt;コードエディターとして使っても優秀ですし、テキストベースで自身の考えを整理するのにも使えそうですね。&lt;/p&gt;
&lt;p&gt;興味を持ったのが音声入力でテキスト変換し、文字おこしした文を整理してもらうという&lt;a href=&#34;https://anond.hatelabo.jp/20250228171948&#34;&gt;記事&lt;/a&gt;です。日常的にも使えそうですし、コードの修正にも活用できそうでしたので使うことにしました。&lt;/p&gt;
&lt;h3 id=&#34;cursorのインストールとダウンロード&#34;&gt;Cursorのインストールとダウンロード&lt;/h3&gt;
&lt;p&gt;まずはインストーラーのダウンロードから。Windows、Mac、LINUXがあるので使っているPCに応じて選びましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_サイト&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/image-1024x504.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;ダウンロードが完了したら、インストーラーを実行しましょう。基本的には何も変更せずポチポチ推して大丈夫です。こだわりがあれば変更するくらいですね。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-102646.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-102732.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-102747.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-102922.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;cursorの初期設定&#34;&gt;Cursorの初期設定&lt;/h3&gt;
&lt;p&gt;インストールが完了したら実行して開きましょう。デフォルトのIDEはVS Codeになりますが、他のIDEを使ってる場合はそちらを選択しましょう。似たようなUIにしてくれると思います。&lt;/p&gt;
&lt;p&gt;AIに対する言語は必要であれば選択しましょう。日本語なら&amp;quot;日本語&amp;quot;や&amp;quot;Japanese&amp;quot;で大丈夫だと思います。&lt;/p&gt;
&lt;p&gt;Codebase-wideはプロジェクト全体を読み込ませるかどうかですね。単体のコードだけを読み込ませるなら不要だと思います。設定が完了したら&amp;quot;Continue&amp;quot;をクリックしましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_設定画面&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-105943.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;こちらはVS Codeを使ってると表示されます。VS Codeで使用してる拡張機能をそのまま使用するかの確認です。使うのであれば&amp;quot;Use Extensions&amp;quot;ですね。他のIDEはわかりませんが…&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_拡張機能&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-110035.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;こちらは利用状況を送信するかの設定です。&amp;ldquo;Privacy Mode&amp;quot;であれば送信されなくなります。私は個人で使う分には気にならないですし、もっと発展してほしいので送信するようにしています。ただ、業務委託では使えませんが。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-110215.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;設定が完了したらログインが必要になります。Freeであってもですね。今のところはproにする予定がないのですが…&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_ログイン&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-110302.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;リポジトリのクローン&#34;&gt;リポジトリのクローン&lt;/h3&gt;
&lt;p&gt;ログインが完了したら初期画面はこんな感じ。後はここからプロジェクトを開くなり、Gitからリポジトリの接続をすることになります。ちなみに日本語UIへの変更はVS Codeと同じ手順で変更できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_クローン&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-110523.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;真ん中のcloneをクリックするとGitからcloneすることができます。Githubの場合は8桁のコードを求められます。画面に表示されますのでそれをペーストすれば問題ありません。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_コード&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-112842.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;初期画面はこんな感じ。拡張機能のCotinueと似たようなUIに感じますね。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_実際の画面&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-113017.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;freeの場合、最初の2週間はproを使うことができます。アカウントの設定画面でどれくらい使ったかを確認することができます。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_使用量&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-134141.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;cursorを使ってコーディング&#34;&gt;Cursorを使ってコーディング&lt;/h3&gt;
&lt;p&gt;次は実際に使ってみましょう。Agent、Ask、Editを使い分けます。使い分けとしてはこんな感じみたいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agent: AIが考えてコードの変更や提案をする&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ask: シンプルに質問する&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit: コードやテキストを変更したり指示する&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_chatが画面&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-134311.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;モデルは4oですね。モデルによってはproにするか設定を変えないとダメみたいです。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-134748.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-134742.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;実際に実行してみるとこんな感じです。変更内容に問題なければ確定します。ちなみに動かしてみましたが、特に問題もなく動きました。リファクタリングが楽でめっちゃ嬉しい！&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_Edit&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-135003-1024x550.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;最後にAIに指示を出して意図通りの動きをするコードが作れるか試してみました。複雑になりすぎないように2つに分割しました。私が描いたイメージはAIが読み取ってくれるわけではないので、そこはコードをコピペして指示を出しました。こんな感じ。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Cursor_Agent&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2025/03/cursor-pyxel-review/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-03-02-172348.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;少しだけ手作業で修正しましたが、ほぼ完ぺきに作ってくれました。障害物は名前から推定したんだと思います。流石に配色とその位置から形を推測するのはまだ無理だと思うので。&lt;/p&gt;
&lt;h3 id=&#34;終わりに&#34;&gt;終わりに&lt;/h3&gt;
&lt;p&gt;ただ、正直に言うとなめてました（笑）ほぼ完璧に指示をこなして&lt;a href=&#34;https://github.com/sai-nome/pyxel&#34;&gt;コード&lt;/a&gt;を書いてくれるとは。何よりリファクタリングが嬉しいですね。もちろんこれだけのためにお試しで導入するのもありだと思います。読みやすくもなるし、今後の作業も楽になると思うので。ではでは。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pyxelを使って簡単なゲームの作成を試してみたい！part3</title>
      <link>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-3/</link>
      <pubDate>Mon, 30 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-3/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-2/&#34;&gt;前回&lt;/a&gt;&lt;a href=&#34;https://github.com/kitao/pyxel&#34;&gt;pyxeleditor&lt;/a&gt;を使ってサウンドを作って動かすところまでやってみました。&lt;/p&gt;
&lt;h2 id=&#34;スコアとゲームオーバーの実装&#34;&gt;スコアとゲームオーバーの実装&lt;/h2&gt;
&lt;h3 id=&#34;スコア表示の実装&#34;&gt;スコア表示の実装&lt;/h3&gt;
&lt;p&gt;今回はゲーム性を持たせるところですね。やることはスコアの作成とゲームオーバーの作成ですね。まずはスコアの作成をしていきます。コードとしてはシンプルです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;class Scrolling_Game:
    def __init__(self):
        …
        self.score = 0
        …
    def draw(self):
        …
        pyxel.text(5, 5, f&amp;#34;Score: {self.score}&amp;#34;, 1)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;textの後の引数はx座標とy座標。後はテキストとカラーパレットですね。カラーパレットはドット絵と同じで0が黒、7が白になります。&lt;/p&gt;
&lt;p&gt;さらにスコアについては特定のアイテムを取った時にプラスしていきたいので、変数にしています。ただ、固定ならテキストを入力で問題ないですね。表示させるとこんな感じ。左上にスコアが出ています。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;pyxel_スコア&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-3/images/image-22.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;スコア増加の実装&#34;&gt;スコア増加の実装&lt;/h3&gt;
&lt;p&gt;次はどうやってスコアを増加させるかですね。シンプルな方法でアテイムを取ったら増加するという方法でやろうと思います。&lt;/p&gt;
&lt;p&gt;というわけでアイテムを書きました。ハチミツの壺ですね。「ハチミツ食べたいな～」でおなじみの奴です。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;pyxel_スコアアイテム&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-3/images/image-23.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;他にもいろいろ描いてますが、将来的に使いたいなーと思って描いたやつです。気にしないでください（笑）&lt;/p&gt;
&lt;p&gt;それから出現をランダムで出したいと思います。ここもそこまで難しくないですね。初期変数をランダムに設定し、draw関数でランダム変数を設定する感じですね。以下のコード&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import random

class Scrolling_Game:
    def __init__(self):
        …
        self.item_x = random.randint(0, 120)
        self.item_y = random.randint(0, 120)
        …
    def draw(self):
        pyxel.blt(self.item_x, self.item_y, 0, 8, 24, 8, 8, 0)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;当たり判定の実装&#34;&gt;当たり判定の実装&lt;/h3&gt;
&lt;p&gt;これでランダムに出現するようになりました。ただ、初期配置でランダムになるだけで取得もできないし、スコアも変わらないです。なので、次は取得して配置を変え、スコアを上げるコードを書いていきます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;class Scrolling_Game:
    …
    def update(self):
        …
        # 当たり判定
        if (self.char_x &amp;lt; self.item_x + 8 and 
            self.char_x + 16 &amp;gt; self.item_x and
            self.char_y &amp;lt; self.item_y + 8 and
            self.char_y + 16 &amp;gt; self.item_y):
            self.score += 100
            self.item_x = random.randint(0, 120)
            self.item_y = random.randint(0, 120)
    …
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これで当たり判定とスコアの上昇、アイテムの再配置を行いました。動かすとこのような感じですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pyxelを使って簡単なゲームの作成を試してみたい！part2</title>
      <link>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-2/</link>
      <pubDate>Fri, 27 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-2/</guid>
      <description>&lt;h2 id=&#34;pyxeleditorでキャラの動きやサウンド&#34;&gt;pyxeleditorでキャラの動きやサウンド&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/&#34;&gt;前回&lt;/a&gt;&lt;a href=&#34;https://github.com/kitao/pyxel&#34;&gt;pyxel&lt;/a&gt;のインストールからドット絵を描いて表示させるところまでやってみました。今回は実際にキャラクターを動かしたり、サウンドを作ったりしたいと思います。&lt;/p&gt;
&lt;h3 id=&#34;pyxeleditorで作った部分&#34;&gt;pyxeleditorで作った部分&lt;/h3&gt;
&lt;p&gt;実際に動いた画面がこちら。&lt;/p&gt;
&lt;h3 id=&#34;コードの中身_init&#34;&gt;コードの中身_init&lt;/h3&gt;
&lt;p&gt;一旦各コードを簡単に見ていこうと思います。まずは__init__内ですね。前回も話したのでざっくりと見ます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pyxel.init(128, 128, title=&amp;#39;Scrolling Game&amp;#39;)
pyxel.load(&amp;#39;assets/scroll_game.pyxres&amp;#39;)
self.char_x = 50  # キャラクターのX座標
self.char_y = 50  # キャラクターのY座標
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;initで画面サイズの設定、char_xとchar_yはキャラ座標を設定しています。loadでpixel editで作成したものをロードしています。ドット絵、タイルマップ、サウンドなど全て一旦ロードしています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;self.char_frame = 0  # 表示する画像のインデックス (0 または 1)
self.frame_count = 0 # フレームカウンター
self.is_moving = False  # 移動中フラグを追加
self.last_input = False #直前のフレームでキー入力があったか
pyxel.run(self.update, self.draw)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;他のコードはコメントも記載していますが、キャラ画像の入れ替えやフラグの設定をしています。後はpyxelの起動ですね。&lt;/p&gt;
&lt;h3 id=&#34;コードの中身_update&#34;&gt;コードの中身_update&lt;/h3&gt;
&lt;p&gt;次はupdate関数ですね。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# ゲーム中断
if pyxel.btnp(pyxel.KEY_Q):
    pyxel.quit()
# キー入力と移動処理
self.is_moving = False
key_pressed = False # 今のフレームでキーが押されているか
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Qを押したらゲームを中断します。それからフラグとキー入力の初期設定をしています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# キー入力処理とキャラクターの移動
if pyxel.btn(pyxel.KEY_LEFT):
    self.char_x -= 1
    self.is_moving = True  # 移動中フラグを立てる
    key_pressed = True
if pyxel.btn(pyxel.KEY_RIGHT):
    self.char_x += 1
    self.is_moving = True
    key_pressed = True
if pyxel.btn(pyxel.KEY_UP):
    self.char_y -= 1
    self.is_moving = True
    key_pressed = True
if pyxel.btn(pyxel.KEY_DOWN):
    self.char_y += 1
    self.is_moving = True
    key_pressed = True
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ここでは各方向キーを入力した時の設定をしています。上下左右分書いてるので記述は多いですが、内容はシンプルです。キャラクターの座標をずらして、フラグを書き換えています。というか関数化したほうがもっとシンプルになりますね…&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pyxelを使って簡単なゲームの作成を試してみたい！part1</title>
      <link>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/</link>
      <pubDate>Sat, 21 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/</guid>
      <description>&lt;h2 id=&#34;pyxelでゲーム開発入門&#34;&gt;Pyxelでゲーム開発入門&lt;/h2&gt;
&lt;p&gt;ゲームを作成するのであれば&lt;a href=&#34;https://unity.com/ja&#34;&gt;Unity&lt;/a&gt;や&lt;a href=&#34;https://www.unrealengine.com/ja&#34;&gt;Unreal Engine&lt;/a&gt;が有名です。それとは別にpythonでコーディングができる&lt;a href=&#34;https://github.com/kitao/pyxel/blob/main/docs/README.ja.md&#34;&gt;pyxel&lt;/a&gt;があります。&lt;/p&gt;
&lt;p&gt;pyxelはレトロゲームエンジンになります。ファミコンのようなドット絵スタイルのゲームしか作れませんが、pythonを知ってる人にはちょうどいいかもしれません。&lt;/p&gt;
&lt;h3 id=&#34;開発環境の準備&#34;&gt;開発環境の準備&lt;/h3&gt;
&lt;p&gt;pythonを導入している前提ですが、少し進めていきたいと思います。基本的には&lt;a href=&#34;https://github.com/kitao/pyxel/blob/main/docs/README.ja.md&#34;&gt;README&lt;/a&gt;通りに進めていけばよいと思います。まずはライブラリのインストールを進めていきます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install -U pyxel
私の例: py -3.10 -m pip install -U pyxel
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;-Uがないとエディター画面が出ないので忘れずにつけましょう！その後は参考のためサンプルを導入するのもよいと思います。なくても特に問題はありません。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pyxel copy_examples
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;基本的なコード構造&#34;&gt;基本的なコード構造&lt;/h3&gt;
&lt;p&gt;そうすると簡単なゲームやガイドなどが入ってます。これを理解できれば基本的なコードは書けるようになると思います。基本的なコードはこんな感じになってます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import pyxel

class App:
    def __init__(self):
        pyxel.init(160, 120)
        self.x = 0
        pyxel.run(self.update, self.draw)

    def update(self):
        self.x = (self.x + 1) % pyxel.width

    def draw(self):
        pyxel.cls(0)
        pyxel.rect(self.x, 0, 8, 8, 9)

App()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;クラスの中に__init__関数とupdate関数とdraw関数があります。__init__関数では画面サイズの指定や各関数の実行ができます。&lt;/p&gt;
&lt;p&gt;update関数ではキー入力や画面の切り替えを行う関数になります。update関数がメインになりそうです。もちろんupdate関数だけじゃなくて新しく関数を作っても問題ないです。キャラクター用や画面用などいろいろ作ると使い分けが楽になると思います。&lt;/p&gt;
&lt;p&gt;draw関数では画面やキャラクターの描画を行います。エディター画面で作成した背景やキャラクターを呼び出したりします。&lt;/p&gt;
&lt;h3 id=&#34;ドット絵とタイルマップの作成&#34;&gt;ドット絵とタイルマップの作成&lt;/h3&gt;
&lt;p&gt;というわけでまずはドット絵とタイルマップの作成からですね。ちなみに私は絵心は全くないので、大したものは書けません。所謂味がある絵みたいなイメージですね…コマンドは以下になります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pyxel edit &amp;#34;絶対パス&amp;#34;
例: pyxel edit &amp;#34;C:\pyxel\assets\game.pyxres&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt=&#34;pyxel_蜂A&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-12-20-142209.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;pyxel_蜂B&#34; loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-12-20-142217.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-12-20-142225.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;コマンドは相対パスだと開かないので気を付けてください。一応実行しているフォルダーに移動してファイル名のみ指定しても問題ありません。&lt;/p&gt;
&lt;p&gt;こんな感じで蜂A、蜂B、空、草原、岩のタイルを用意してみました。適当ですが苦手なりにそれっぽくできた気がします。まずはタイルマップの作成をします。左上のエディターからタイルマップを選び、書いたタイルを指定して書いていきます。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://xainome-blog.pages.dev/posts/2024/12/build-game-with-pyxel-part-1/images/image-19.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;タイルマップへのキャラクター表示&#34;&gt;タイルマップへのキャラクター表示&lt;/h3&gt;
&lt;p&gt;今度はコードを使ってタイルマップにキャラクターを表示してみます。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
