すみません。スクリプトを書き忘れました。今ここに書くので、本当にスミマセンでした。
screen 0,400,341
title "タイピング";タイトルバーにタイピングと表示
int_time_limit;制限時間(秒)
*top_menu
cls
picload "in.jpg";インベーダーの画像
pos 80,50
font "MS Pゴシック",30,1
mes "タイピングゲーム"
pos 250,120
button "スタート",*typing_start;スタート画面に移動
button "システム",*system_menu;制限時間を設定する画面に移動
stop
*system_menu
cls
pos 10,31
mes "制限時間"
pos 107,30
input int_time_limit, 40,20
pos 149,31
mes "秒"
pos180,100
button "戻る",*top_menu
stop
*typing_start
cls
sdim str_question_sentence_list,64;問題文の書かれたテキストを読み込む変数
sdim str_question_sentence_j,64;問題文日本語を入れる文字列型変数を作成
sdim str_question_sentence_r,64;問題文ローマ字つづりを入れる文字列型変数を作成
sdim str_input_sentence,64;入力文を入れる文字列型変数を作成
int_question_list_index = ;問題文の書かれたテキストの読み込む行数が入る変数
int_question_index = 0;問題文読み込み位置
int_question_clear_number = 0;問題文を入力し終えた数
int_input_ok_number = 0;入力した文字数
int_input_tokuten_number = 0;得点
;問題文の書かれたテキストを読み込む処理
notesel str_question_sentence_list
noteload "shiratekisuto.txt";テキストファイル名
;問題文を変更する処理をするサブルーチンに飛ぶ
gosub *sub_question_change
onkey *key_push_action;何かキーが押されたら*key_push_actionに飛ぶ
int_elapsed_time = 0;経過時間(秒)
int_second = gettime(6);秒
int_minute = gettime(5);分
;問題文、入力文の表示と、onkeyでキーが押された場合の処理に飛ぶ
*main
color 0,0,0;
boxf 0,0,400,341
color 255,255,255;文字が見えるようにする
pos 60,10
mes str_question_sentence_j;問題文日本語を表示
pos 60,40
mes str_question_sentence_r;問題文ローマ字つづりを表示
pos 60,70
mes str_input_sentence;入力文を表示
gosub *sub_elapsed_time_accession;経過時間を取得する処理に飛ぶ
font "MS Pゴシック",20,1
pos 10,100
mes "残り時間 "+abs(int_time_limit-int_elapsedd_time)+"秒"
pos 10,120
mes "入力問題数 "+int_question_clear_number+"問"
pos 10,140
mes "入力文字数 "+int_input_ok_number+"文字"
pos 10,160
mes "入力ミス回数"+int_input_mis_number+"回"
pos 10,180
mes "入力得点数 "+int_input_tokuten_number+"点"
redraw 1;画面制御命令の実行を反映する
;経過時間が制限時間以上ならonkeyをOFFにして、ストップします
if int_time_limit <= int_elapsed_time : goto *result_display;結果を表示する画面に移動
await 10
redraw 0;仮想画面を書き換えるだけ
;経過時間を取得と表示を繰り返し行うために*mainでループ
goto *main
;キーボードを押された時の処理
*key_push_action
;peekで問題文からint_question_indexの位置から1byte読み出し文字コードとiparamを比較する
if peek(str_question_sentence_r,int_question_index) = iparam {
;文字コードとiparamが等しい場合の処理
int_input_ok_number += 1;入力した文字数を一つ増やす
int_question_index += 1;問題文の読み込み位置を一つ増やす
int_input_tokuten_number += 1;一つ入力するごとに得点を1点増やす
;strmidで問題文から0からint_question_inndexの位置まで読み込みstr_input_sentenceに代入する
str_input_sentence = strmid(str_question_sentence_r,0,int_question_index)
}
else{
;文字コードとiparamが等しくない場合の処理
int_input_mis_number += 1;入力ミスした回数を一つ増やす
int_input_tokuten_number -= 1;一つミスするごとに得点を1点減らす
}
;int_question_indexと問題文の文字列の長さを比較する事で問題が入力し終わったか調べる
if strlen(str_question_sentence_r) <= int_question_index {
;入力し終わっている場合の処理
int_question_clear_number += 1;問題文を入力し終えた数を一つ増やす
int_question_index = 0;問題文の読み込み位置を0にする
int_input_tokuten_number += 5 ;単語を入力し終えると、得点を5点増やす
str_input_sentence = "";変数内を空にする
gosub *sub_question_change
}
goto *main;*mainに飛ぶ
;結果を表示する
*result_display
onkey 0
cls
pos 10,10
mes "結果発表"
pos 10,30
mes "入力問題数 "+int_question_clear_number+"問"
pos 10,60
mes "入力文字数 "+int_input_ok_number+"文字"
pos 10,90
mes "入力ミス回数"+int_input_mis_number+"点"
pos 180,200
button "トップ",*top_menu
pos 10,200
button "もう一度",*typing_start
stop
;問題文を変更する処理をするサブルーチン
*sub_question_change
notesel str_question_sentence_list
noteget str_question_sentence_j,int_question_list_index
noteget str_question_sentence_r,int_question_list_index+1
int_question_list_index += 2
;問題文の書かれたテキストの行数と等しくなったら読み込む行数を0に戻す
if noteinfo(0) = int_question_list_index : int_question_list_index = 0
return
*sub_elapsed_time_accession
;変数の秒と今の秒を比較する
if int_second ! gettime(6){
;分が同じか違うかで加算方法を変える
if int_minute = gettime(5) : int_elapsed_time += abs(int_second-gettime(6))
if int_minute ! gettime(5) : int_elapsed_time += abs(int_second-gettime(6)-60) : int_minute = gettime(5)
}
return
これで全部です。
僕が聞きたかったのは
1 どうやったら背景の(ちっちゃいインベーダーの)絵がインベーダーのような動きをするか
2 どうやったら問題文を打つたびに背景の絵が消えるみたいな動きをするようになるのか
ということです。迷惑をかけてすみませんでした。よろしくおねがいします。