;−−−−−−−−−−−−−−−−−−−−−−−−−−− ; ;今回はテキストの読み込み方については省略させてもらいます。 ;期待するものはこれで足りると思います ; ;−−−−−−−−−−−−−−−−−−−−−−−−−− *main w_x=640 : w_y=480 ;ウィンドウのサイズ screen 0,w_x,w_y,1 f_size=40 ;フォントの大きさ font "MSゴシック",f_size sdim if_3,30,3 ;表示する三行を入れる変数 if_3="右に進んでみる","直進してみる","左に進んでみる" if_kari=3 ;分岐の数 text_x=60 : text_y=w_y-(f_size*if_kari) ;テキストの表示開始位置 ;これを変えると位置が変わります。 count=-1: j=-1 ;文字の反転のための初期化(詳しくは画像ボタンに(^^;) goto *if_syokihyouji ;始めから、文字に色をつけないため ;文字の上にマウスカーソルがあるかの判定ルーチン *if_kurikaesi count=-1 ;カーソルが文字以外のときに−1となる(文字の色が変わらなくなる) ;ためしにコメントアウトしてみると分かると思います(^^) await 1 if (mousey>(text_y))&(mousey<(f_size+text_y)) : count=0 ;1行目カーソルがあれば if (mousey>(f_size+text_y))&(mousey<(f_size*2+text_y)) : count=1 ;2行目カーソルがあれば if (mousey>(f_size*2+text_y))&(mousey<(f_size*3+text_y)) : count=2 ;3行目カーソルがあれば if (count>=0)&(count<=2) : stick kari,,1 ;1〜3行目にカーソルがあるときだけ、クリックのチェック if kari=256 : goto *if_nukeru if j=count : goto *if_kurikaesi ;jは同じ所にマウスがあるかの判定(すぐ下に有ります) ;書き換えによるちらつき、および処理の軽減のためです ;コメントアウトすると分かります。大切さが(^^) ;文字の表示ルーチン *if_syokihyouji j=count ;前回のカーソルのあった位置をjに入れます。 ;これもないと処理落ちしますし、文字の色が残ります(^^; redraw 0 repeat if_kari,0 ;先に黒の文字を全方向に1ずらして書きます color 0,0,0 pos text_x+1,(f_size*cnt)+text_y : mes if_3.cnt pos text_x-1,(f_size*cnt)+text_y : mes if_3.cnt pos text_x,(f_size*cnt)+text_y+1 : mes if_3.cnt pos text_x,(f_size*cnt)+text_y-1 : mes if_3.cnt ;その後に、白の文字を書きます color 255,255,255 if count=cnt : color 255,255,0 ;カーソルが上にあれば黄色にします。 pos text_x,(f_size*cnt)+text_y : mes if_3.cnt loop redraw 1 goto *if_kurikaesi *if_nukeru ;−−−−−−−−−−−−−−−−−−−−−−−−−−− ; ;ここからがマウスで、文字を選択された後の処理 ;今の場合には、countという変数に、どの選択肢を選んだかという情報が入っています。 ;(1行目なら0、2行目なら1という風に) ; ;−−−−−−−−−−−−−−−−−−−−−−−−−− if count=0 { dialog "右は崖だった!!" } if count=1 { dialog "お化けが現れた!!" } if count=2 { dialog "森が見えてきた!!" } goto *main |