キャッチゲームの制作 VB6 | |
(9) ランキングの処理 |
3. ランキングの書き込み
ランキングのデータは配列 Ten と Namae で管理(記憶)している。ランキングは10位までであるから、配列の1番から10番までのデータを順にファイルに書き込む。ランキングのファイル名は「RankingData.dat」とする。
処理は、サブプロシージャ RankingSave として作成する。
ファイル保存の場所注意
・プログラムリスト
Private Sub RankingSave() Dim n As Integer On Error GoTo Err2 'エラーが発生したときの移動先 Open "RankingData.dat" For Output As #1 'ファイルを開く For n = 1 To 10 Print #1, Ten(n) 'データを書き込む Print #1, Namae(n) 'データを書き込む Next n Close #1 'ファイルを閉じる Exit Sub 'プロシージャを抜け出す Err2: 'エラーの時にする処理はない MsgBox "ランキングファイルの保存に失敗しました。", vbOKOnly, Form1.Caption End Sub
得点1 名前1 得点2 名前2 … 得点10 名前10 |
得点と名前のデータを2つの Print 命令でファイルに書き込んでいる。
ファイルには、左のように得点と名前が2行で書き込まれる。
Input 命令でデータを読み込むと、1つの変数にはデータの先頭から「改行」までのデータ、または、「カンマ」までのデータが読み込まれる。ここでは、1行に一つのデータを書き込むようにしている。
RankingSaveプロシージャは、終了時に実行すればよいので、Form_QueryUnloadプロシージャ内から呼び出す。Form_Loadプロシージャで ChDrive App.Path と ChDir App.Path を実行しているのでアプリケーションと同じフォルダに書き込まれる。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) … 省略 … End If RankingSave 'ランキングファイルの書き込み End End Sub
ほかの書き込み方法
データの書き込みで Print 命令の代わりに Write 命令を次のように使うことができる。
Write #1, Ten(n), Namae(n)
Write 命令はファイルにデータを書き込むときに各データ(ここでは得点と名前)の間にカンマ が自動的に挿入される。また、文字列は、ダブル クォーテーション ("") で囲んで出力される。
得点1,"名前1" 得点2,"名前2" … 得点10,"名前10" |
課 題
*経過時間を表示する。
*落下速度でリンゴのポイントを変える。(早く落ちるリンゴの方が得点が高くなる。)
*色違いのリンゴを発生させ、例えば黒リンゴを取るとゲーム終了、金リンゴを取ると時間延長、というようにする。
などなど..... チャレンジしてみよう。
(9) ランキングの処理 | |
Copyright © 2001,2002 Hiroshi Masuda |