<?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>Gameover on Xainome Blog</title><link>https://xainome-blog.beeskynohito.workers.dev/tags/gameover/</link><description>Recent content in Gameover on Xainome Blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 30 Dec 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://xainome-blog.beeskynohito.workers.dev/tags/gameover/index.xml" rel="self" type="application/rss+xml"/><item><title>Pyxelを使って簡単なゲームの作成を試してみたい！part3</title><link>https://xainome-blog.beeskynohito.workers.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.beeskynohito.workers.dev/posts/2024/12/build-game-with-pyxel-part-3/</guid><description>&lt;p>&lt;a href="https://xainome-blog.beeskynohito.workers.dev/posts/2024/12/build-game-with-pyxel-part-2/">前回&lt;/a>&lt;a href="https://github.com/kitao/pyxel">pyxeleditor&lt;/a>を使ってサウンドを作って動かすところまでやってみました。&lt;/p>
&lt;h2 id="スコアとゲームオーバーの実装">スコアとゲームオーバーの実装&lt;/h2>
&lt;h3 id="スコア表示の実装">スコア表示の実装&lt;/h3>
&lt;p>今回はゲーム性を持たせるところですね。やることはスコアの作成とゲームオーバーの作成ですね。まずはスコアの作成をしていきます。コードとしてはシンプルです。&lt;/p>
&lt;pre tabindex="0">&lt;code>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>&lt;/pre>&lt;p>textの後の引数はx座標とy座標。後はテキストとカラーパレットですね。カラーパレットはドット絵と同じで0が黒、7が白になります。&lt;/p>
&lt;p>さらにスコアについては特定のアイテムを取った時にプラスしていきたいので、変数にしています。ただ、固定ならテキストを入力で問題ないですね。表示させるとこんな感じ。左上にスコアが出ています。&lt;/p>
&lt;p>&lt;img alt="pyxel_スコア" loading="lazy" src="https://xainome-blog.beeskynohito.workers.dev/posts/2024/12/build-game-with-pyxel-part-3/images/image-22.png">&lt;/p>
&lt;h3 id="スコア増加の実装">スコア増加の実装&lt;/h3>
&lt;p>次はどうやってスコアを増加させるかですね。シンプルな方法でアテイムを取ったら増加するという方法でやろうと思います。&lt;/p>
&lt;p>というわけでアイテムを書きました。ハチミツの壺ですね。「ハチミツ食べたいな～」でおなじみの奴です。&lt;/p>
&lt;p>&lt;img alt="pyxel_スコアアイテム" loading="lazy" src="https://xainome-blog.beeskynohito.workers.dev/posts/2024/12/build-game-with-pyxel-part-3/images/image-23.png">&lt;/p>
&lt;p>他にもいろいろ描いてますが、将来的に使いたいなーと思って描いたやつです。気にしないでください（笑）&lt;/p>
&lt;p>それから出現をランダムで出したいと思います。ここもそこまで難しくないですね。初期変数をランダムに設定し、draw関数でランダム変数を設定する感じですね。以下のコード&lt;/p>
&lt;pre tabindex="0">&lt;code>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>&lt;/pre>&lt;h3 id="当たり判定の実装">当たり判定の実装&lt;/h3>
&lt;p>これでランダムに出現するようになりました。ただ、初期配置でランダムになるだけで取得もできないし、スコアも変わらないです。なので、次は取得して配置を変え、スコアを上げるコードを書いていきます。&lt;/p>
&lt;pre tabindex="0">&lt;code>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>&lt;/pre>&lt;p>これで当たり判定とスコアの上昇、アイテムの再配置を行いました。動かすとこのような感じですね。&lt;/p></description></item></channel></rss>