“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

248.HSPでゲームを作ろう:たまねとりっぷ! その21

サブメニューの処理作成。1つ目はプレイヤー切替。
3人のユーザのうち、どのユーザでプレイするかを決める機能。

サブメニューで「きりかえ」を選択したときにプレイヤーを切り替える。
今まではユーザIDを1に固定してきたので、現在選択中のプレイヤーが誰なのかを、どこかに保持して、読みださないといけない。
せっかくなので、選択プレイヤーのユーザIDは、データベースに記録することにした。

もともと、コンフィグ系の設定内容をデータベースに記録するため、「ConfigTable」を作っていた。
項目が増減しても良いように、ItemNameItemValueという組み合わせで、1項目、1レコードで登録するようにしている。
とりあえず、ItemNameを’SelectedUserID’、ItemValueをUserIDの数値を登録するようにした。

ゲームを開始する前に、データベースから、レコードを検索して、変数UserIDに値をセットする。
念のため、レコードが無かった時の処理も加えた。
設定レコードがない場合、DelFlgが0のプレイヤーで、ユーザIDが一番若い番号のプレイヤーを設定するようにした。

;選択中のユーザIDを取得
sql_open "tamanetrip.db"
  sqlstr="select * from ConfigTable "
  sqlstr=sqlstr+"Where ItemName='SelectedUserID' AND DelFlg=0"
  sql_q sqlstr

if stat>0 {
    UserID=sql_i("ItemValue")
  } else { ;設定がないときは現存プレイヤーの1人をセット
    sqlstr="select ID from UserTable "
    sqlstr=sqlstr+"Where DelFlg=0 ORDER By ID LIMIT 1"
    sql_q sqlstr
    UserID=sql_i("ID")
  }
sql_close

そして、サブメニューの処理に戻る。
サブメニューでは、選択したプレイヤーに切り換えるため、変数UserIDの更新と、ConfigTableの設定値を更新するSQLの実行を行う。

UserID=uid(csrpos) 

sqlstr="update ConfigTable SET ItemValue='"+UserID+"'"
sqlstr=sqlstr+"Where ItemName='SelectedUserID' AND DelFlg=0"
sql_q sqlstr

これで、ゲームを終了しても、前回選択していたプレイヤーでゲームを再開できるようになった。