pythonでゲーム #3

pygame

(´・ω・)>自粛

こんにちはGipheです。

最近は家にこもってゲームか、PCいじるかくらいしかすることがありません。
ちなみにGipheはゲームでもプログラミングでも一人でやりたい派です。

どちらも友人にたまに誘われるのですが、勉強するときは友人の集中が続かなくて、ゲームを一緒にやると私のほうが集中続かないので最近ぎくしゃくしています。

足を引っ張るのも、引っ張られるのも嫌なので(主に後者はとてもいや)
一緒に開発するならペースが合う人とするのがいいですね。

さて、今日は前回に引き続き進捗報告です。

今回はDB関連を実装した部分だけ展開します。


概要

早速ですが、ER図というものを皆さんご存じでしょうか?

システム開発の現場ではよく見かける図ですが、Gipheは最近までその威力を知りませんでした(というかそもそも読めていなかった、、)

ER図はこんなのです。

(´・ω・)ちっさ。。

こじんまりしたまとまりがいくつか線でつながっていますね。

このまとまりはエンティティといいます。
なじみがない方はテーブルの認識でよいと思います。

ちなみにA5mk2という素晴らしい無料ツールを使用しています。

ER図を生成したらツールバーの「ER図」→「DDLを作成する」で以下のウィンドウが開きます。

「DDL生成」をクリックするとCREATE SQLを生成することができます。

今回はDB関連です。ゲーム開発になじみがないGipheは馬鹿正直にmysqlでアプローチしていきたいと思います。

ゲームってどんなDB使ってるんでしょう。知っている方是非教えてください。

テーブル構成

現時点でのテーブルはこんな感じです。

  • users
    ユーザー。今のところ必要なし
  • characters
    キャラクター。ステータスとかフラグとか
  • dangeoncharacters
    上に同じ。魔物
  • genes
    遺伝子。これが肝!
  • personalities
    性格
  • races
    種族
  • classes
    クラス
  • talents
    タレント?技マシン的な?
  • dangeons
    ダンジョン
  • fields
    国単位
  • locations
    領地単位
  • spots
    マス単位

(´・ω・)ざっくりやな。

はい、今のところ12テーブルですね。これだけでも数日使いました。
DB構成って本当に難しいです。画面側と並行して作っていると

あ、項目足りね

となることが何度もあります。何回も画面←→DBを行き来して

時にはデグレって修正をして、を繰り返してようやく出来上がりました。

(´・ω・)めっちゃ練ってたね

今後拡張することもあると思うので、項目はたぶん増えますが。

動作確認

>さて、DBはいいとして処理の方は?

>キャラメイクなんだよね、登録できんの?

と思われるかもしれませんね。

はい、すみません、まだできていないです!

入力制御の方で思ったより時間がかかっていました。。

今回は入力制御の部分を紹介します。

  1. geneを選択した場合
    ・DBから取得したデータを「ステータス」に反映。(ステータスはポケモンでいう’個体値’的な値です。)
    読み取り専用に設定。
  2. gene(空白)を選択した場合
    ステータスが初期化されます。読み取り専用も解除。
  3. レベルを設定した場合
    設定したレベルによってclass, talentの複数設定が可能。

こんな感じです。pythonの制御はtk.StringVarやtk.IntVarが使いやすい印象でした。

まとめ

DBから値の取得ができました!

次回は登録、ランダム生成、連続登録などいけるところまで!

それではこんなご時世ですが、みなさんよいGWを!

(´・ω・)あれ、ゲームの世界観は?

]]>

コメント

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