―――――――――――――――――――――――――――――――             fogel.exe   ――――――――――――――――――――――――――――――― 【ジャンル】フライトシミュレーション? 【 製作者 】えおなゆ 【動作環境】Windows XP(他は未確認) 【取扱種別】フリーソフト 【配布条件】個人での配布自由 【転載条件】作者に連絡しなくてもいいです 【開発環境】・Hot Soup Prosessor              (C) Onion Software さん        http://www.onionsoft.net/   ――――――――――――――――――――――――――――――― 【あいさつ】  どうも〜。  Angriff_zを発展させてみようかと思って頑張る予定でした。  しかし、なんつーか最近すごく忙しくなってきて時間を割けなくなってきたので、  「とりあえず形にしよう」となってこの形です。  最初からソースは公開予定でした。  このソース(下記)を見て発展させてくれればと願っています。 【使い方】  同封されているexeファイルを起動してください。  タイトル画面?の後ゲームが始まります。  ただただ三角をくぐり続けます。    操作方法   ↑↓キー・・・自機の上旋回、下旋回   ←→キー・・・自機の左ひねり、右ひねり   Escキー・・・ゲームを終了します。   スペースキー・・・ゲームの開始  こんな風になってます。  自機は常に前進。  三角関数モジュールをHSPWikiで見かけたので、それでフライト出来ないかと。  楽しむには程遠いですが、何かの参考になればいいです。  画面の見方も載せときます。   真ん中の白い十字・・・画面の中心です。自機の進む場所です。   赤いライン・・・△の方角の目安です。そんなに正確じゃないですが。   緑のライン・・・長い方は自分の横ひねり量を表してます。           短い方は上がどちらかを指しています。   緑の数字・・・左は自分の高度、右は自分の向いている上下方向の角度。   左下の枠・・・レーダーです。中心の白が自分で赤が△です。   タイトルバー・・・△をくぐった回数が書いてます。 【その他細かいこと】  ・△は実はくぐらなくても当たる。  ・他にあったっけ? 【今後の予定】  忙しいので・・・発展させたいですが・・・。  他の人誰か発展させてみません? 【更新情報】  2004/08/30 制作完了 HP:http://www.geocities.jp/akatuki_twilight/ mail:akatuki_twilight@yahoo.co.jp   ――――――――――――――――――――――――――――――― ・ソース  誰かの役に立てばいい感じ。  あんまり削っても難解になるので適度に削り残し。バイト数にも余裕あるし。  まだまだ未熟なのでだめな所が満載かも。怖いなぁ。 dim sinTable, 65 //Wikiからそのまま転載。いいのだろうか? cosS = 1<<24 repeat 65 sinTable.cnt = sinS>>16 sinS + cosS*4/163 cosS - sinS*4/163 loop #module #deffunc sincos int mref i dup result, sin@ repeat 2 rad = i&0xFF sign = 1 if rad>=128: sign = -1: rad - 128 if rad>=64: rad = 128-rad result = sintable@.rad*sign dup result, cos@: i+ 64 loop return #deffunc arctan int,int //アークタンジェント mref x mref y,1 mref stat2,64 repeat 128 a=x<0*128+cnt sincos a if x*cos@<=(y*sin@):stat2=a:break loop return #global mx=0:my=0:mz=-760 //初期設定(自機のx,y,z座標) mtx=0:mty=0:mtz=0 //(自機のx,y,z角度) ex=0,40,-40:ey=40,0,-40:ez=40,-40,0 //(△のx,y,z座標) r=500 //(スクリーン) repeat //メインループ title "fogel.exe/// △をくぐった回数は"+Hit+"回" stick k,0xf //キーチェック sincos mtz if k&0x1:mtz+ //旋回、ひねり if k&0x2:mtx-cos:mty+sin if k&0x4:mtz- if k&0x8:mtx+cos:mty-sin if start=1{ //前進 sincos mty/256:mx+sin/32:mz+cos/32 sincos mtx/256:my+sin/32 } if k&0x80:end if mx*+(my*my)+(mz*mz)<1600:if H_flag=0:Hit+:H_flag=50 //当たり判定 redraw 0 palcolor:boxf c=0 //三角形の描画 repeat 3 arctan ex.cnt-mx,ez.cnt-mz ety.cnt=stat arctan ey.cnt-my,ez.cnt-mz etx.cnt=stat ety.cnt-mty/256:etx.cnt-mtx/256 sincos ety.cnt:bx=r*sin/256:if cos<0:c+ sincos etx.cnt:by=r*sin/256:if cos<0:c+ sincos mtz drx.cnt=bx*cos+(by*sin)/256:dry.cnt=bx*sin-(by*cos)/256 loop palcolor 255 if c=0{ line drx+320,dry+240,drx.1+320,dry.1+240 line drx+320,dry+240,drx.2+320,dry.2+240 line drx.1+320,dry.1+240,drx.2+320,dry.2+240 } //その他の描画 palcolor 2 a=mtx&0xffff*360/65536 sincos mtz if a>270:a-360 line 320+cos,240+sin,320-cos,240-sin //緑ライン、高度、角度 line 320,240,320+(90-a*sin/90),240-(90-a*cos/90) if a>90:a=180-a pos 340,200:mes ""+a+"°" pos 260,200:mes ""+my+"M" palcolor 128 //白ライン line 320,220,320,260 line 290,240,350,240 line 0,380,100,380 //レーダー line 100,380,100,480 pset 50,430 palcolor 249 bx=ex-mx/64:by=ez-mz/64 sincos mty/256 pset bx*cos+(by*sin)/256+50,bx*sin-(by*cos)/256+430 arctan dry,drx //赤ライン line 320,240,340+cos,240+sin if start=0{ //タイトル? if k&0x10:start=1 pos 200,300:mes "鳥になれ!!\n push space } if H_flag>0{ //△をくぐった時 pos 300,300:mes "NICE!!" H_flag- } redraw await 20 loop