[ このメッセージへの返事 ]
[ 返事を書く ]
[ home.html ]
投稿者:
けいちょん @ ppp_010.sunbit.or.jp on 97/9/18 04:55:28
In Reply to: こんなにレスがあるとは(笑)
posted by けいちょん @ ppp_200.sunbit.or.jp on 97/9/18 03:01:45
ぜんぜん眠くないので ちぃ〜と プログラム組んでみました(笑)
今日も 会社あるのになぁ・・・
ちなみに BASICはずっと前に忘れたので(^^ C言語が混在してます。
ゆるして〜〜〜
-------------------------------------------------------------
REM パッド入力は 16ビットで返ってきます
KEY_R = &h8000:KEY_L = &h4000:KEY_D = &h2000:KEY_U = &h1000
KEY_S = &h0800:KEY_A = &h0400:KEY_B = &h0200:KEY_C = &h0100
KEY_X = &h0040:KEY_Y = &h0020:KEY_Z = &h0010:
COMMAND_END = &hFFFF
REM SS-BASICはこういう配列の定義できまへん
REM 下 右下 右 パンチ
DIM HADOUKEN = { KEY_D, KEY_D OR KEY_R, KEY_R, KEY_A,COMMAND_END }
REM リングバッファは約0.5秒(32/60秒)用意
DIM RING(31):FOR i = 0 TO 31:RING(i) = 0:NEXT i
RING_INDEX = 0
*MAINLOOP:
VSYNC V-SYNC待ちコマンド(ほんとにあるぞ)
RING(RING_INDEX) = PAD(0,1) パッド入力
RING_INDEX = (RING_INDEX + 1) AND 31 リングバッファの一番古いデータのポインタ
REM HADOUKEN チェック
KEY_CHECK = 0 HADOUKEN配列の何番めのデータをチェックするかを示す
COMMAND_ON = 0 コマンドが成立したら 1になる
for i=0 to 31 リングバッファの数だけループ
if RING((RING_INDEX + i) AND 31) AND HADOUKEN(KEY_CHECK) <> 0
THEN KEY_CHECK = KEY_CHECK +1
if(HADOUKEN(KEY_CHECK) = COMMAND_END )
THEN COMMAND_ON = 1:i = 32 ループ抜け出し
ELSE
ELSE
NEXT i
IF COMMAND_ON = 1 GOSUB *HADOUKEN
GOTO *MAINLOOP
-------------------------------------------------------------
こんな感じかなぁ とは思いつつ、自信なし(^^
こんなにちょこっと プログラムしただけでも
BASICよりは Cの方が簡単に書けるなぁ なんて思ってしまう。
IF THEN ELSE って 1行にかかないといけないんじゃなかったっけ?
配列データは DATA,READで定義しなきゃならないし。
ポインタ使えれば もうちょっと楽なんだけどなー
構造化BASICとやらに期待しよう・・・・。
これ、おもいっきり間抜けなプログラムだったりするかなぁ・・・・?
自分じゃ こういうふうにしか おもいつかなかった。
BASICに反応して いろいろな人が書き込みするってことは
期待してる人が いっぱいいるってことだよね
はやく出してくれないかなぁ・・・・
---------------------------------------------------------------------
NIFTYServe SGY02444 Keiji Fujita
E-Mail kei2@sunbit.or.jp ヘヘ
WebPage http://www.sunbit.or.jp/kei2/ ミ(・・)ミ
|