
Pyxelでレトロゲーム作る④タイピングゲーム作る!
タイピングゲームを作ってみます。
前回の記事はこちら
⌨とりあえすソースを拝借
まるっとソースを使わせてもらって、必要なモジュールをインストールしファイルを叩くと起動できることを確認しました。

一応ソースも。表示するWord内の部分だけ修正してみました。
import pyxel
from typehandler import Process
shifted = {
'a':'A', 'b':'B', 'c':'C', 'd':'D', 'e':'E', 'f':'F', 'g':'G', 'h':'H', 'i':'I', 'j':'J', 'k':'K', 'l':'L', 'm':'M', 'n':'N', 'o':'O', 'p':'P', 'q':'Q', 'r':'R', 's':'S', 't':'T', 'u':'U', 'v':'V', 'w':'W', 'x':'X', 'y':'Y', 'z':'Z',
'1':'!', '2':'"', '3':'#', '4':'$', '5':'%', '6':'&', '7':"'", '8':'(', '9':')', '0':'0',
'-':'=', '^':'~', '\\':'|', '@':'`', '[':'{', ']':'}', ';':'+', ':':'*', ',':'<', '.':'>', '/':'?',' ':' '
}
words = {
'IMT':'いちのせちゃんはまじてんし',
'む一みんロル教室':'むいちみんろるきょうしつ',
'おきつね工房':'おきつねこうぼう',
'菓子工房異国屋':'かしこうぼういこくや',
'てぃる教':'てぃるきょう',
'やきにくチャンネル':'やきにくちゃんねる',
'ぽにー痩せろ':'ぽにーやせろ',
'べるめも最高':'べるめもさいこう',
'おちゅきみコロナ':'おちゅきみころな',
'メイド服のしいな':'しいなさんのめいどふく'
}
process = Process(words) #お題とフリガナの辞書を渡しておく
font = pyxel.Font("k8x12.bdf")
class TypingGame:
def __init__(self):
pyxel.init(160, 120, fps=50)
pyxel.run(self.update, self.draw)
def update(self):
process.update_show_roman() #おまじない
#キー入力の判定部分
for key in pyxel.input_keys:
if key not in range(pyxel.KEY_UNKNOWN, pyxel.KEY_Z+1): #0~122でなければ無視
continue
char = chr(key) #キーの名前を取得
if pyxel.btnp(pyxel.KEY_UNKNOWN): #Windowsでは\が空文字になるので、空文字を\として扱う
char = '\\'
if pyxel.btn(pyxel.KEY_SHIFT): #シフト入力時
if key == pyxel.KEY_UNKNOWN:
char = '_'
else:
char = shifted[char]
process.main(char) #これ一行で正誤判定から文章の更新まで行う
def draw(self):
pyxel.cls(0)
pyxel.text(20, 40, process.show_roman, 13, font) #入力パターンの一例
pyxel.text(20, 40, process.input, 14, font) #現在の入力
pyxel.text(20, 60, process.sentence, 7, font) #お題
TypingGame()
💡 基本のタイピングゲームに、以下の機能を実装
✅ 1分間の時間制限
✅ リザルト結果の表示
✅ 名前の入力
✅ プレイヤーランキングの表示
✅ ランキング結果の保存
✅ 同じ名前のプレイヤーが再度プレイした場合、前回のスコアを更新
🙏ひたすらChatGPT先生にどうしたらいいか聞きまくる
エラーがでたら解決策も質問する簡単なお仕事🙏
何をしているかわからないところも聞いたら教えてくれる優しい世界



📌修正前のコードと修正後のコードどこが変わった?

これやったあとに、あっGitHubで同じことできるなって思い出しました
普段コード書かないから習慣ないなあ・・・今度やってみます
🎮 なんとなく作れたので動かしてみる
🎨 次回
以下機能を追加&修正
✅ 同じワードがでてこないようにする
✅ 寿司打のように〇文字~〇文字打てたら神!みたいなランク付け
✅ 名前同じで再チャレンジするとスコアがおかしくなる
✅ タイプミスをした分だけマイナスをいれる
✅打撃音をいれてみる
✅Wordを別ファイルに分けて読み込む