QLOOKアクセス解析

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


Basic! でゲームを書いてみた

 こないだ買った iPad 用 Basic のプログラムを遊びで書いてみました。

 昔懐かしキャラクターを使った UFO 撃ち落としゲームっす!

 iPad 用 Basic! を買って、下のプログラムを貼付けると脱力ゲームが出来ます。

 まだバグが多いけど結構楽しい。やっぱ Line 文で Mystery House 作るっきゃないっすかね?

 Basic! のツール本体はこちら ---> Basic! - miSoft


----------
start:
TEXTFONT "times",32
CLS
TCOLOR 255,10,255
SW=ScreenWidth
SH=ScreenHeight
UfoPt=1
UfoPosX=INT(SW/2)
UfoPosY=50
DownCt=0
CanPosX=250
CanPosY=520
CanMov=40
ShellMov=50
MovRangX=50
MovRangY=30
FireSt=0
GOSUB DrCan
GOSUB DrConsole

MainLoop:
CLS gfx
GOSUB BtnSt
GOSUB UfoPosCal
GOSUB DrUfo
GOSUB DrCan
IF ShellCt<>0 THEN
    GOSUB DrShell
END IF
GOTO MainLoop
END

DrShell:
ShellCt=ShellCt+1
COLOR 255,0,0
ShellPosY=-(ShellMov*ShellCt)+CanPosY+180
DRAWTEXT "^",ShellX,ShellPosY
DRAWTEXT "||",ShellX+1,ShellPosY+10
REM ===== Atari Check =====
AX1=UfoPosX
AX2=ShellX
AY1=DownVal
AY2=ShellPosY

IF AX2>AX1 AND AX2<(AX1+63) AND AY2>(AY1-20) AND AY2<(AY1+45) THEN
    GOTO YouWin
END IF

REM 13
IF ShellCt>10 THEN
    ShellCt=0
END IF
RETURN

YouWin:
GOSUB DrCan
REM PRINT AX1,AY1,AX2,AY2

FOR ct=1 TO 5   
    CLS
    COLOR 255,50,50
    DRAWTEXT "^ * = <^ *",UfoPosX,DownVal
    DRAWTEXT "~* >< **",UfoPosX,DownVal+20
    DRAWTEXT "*/ <  #*",UfoPosX,DownVal+40
    DRAWTEXT "#**^*/>",UfoPosX,DownVal+60
    CLS
    COLOR 24,210,150
    DRAWTEXT "*O@ ~  **",UfoPosX,DownVal
    DRAWTEXT "= >  /* @ *",UfoPosX,DownVal+20
    DRAWTEXT "^^*** <= *",UfoPosX,DownVal+40
    DRAWTEXT "** # +* *=",UfoPosX,DownVal+60
    CLS
    COLOR 234,34,250
    DRAWTEXT "(V^* *+ *<>",UfoPosX,DownVal
    DRAWTEXT "*** O *^** /",UfoPosX,DownVal+20
    DRAWTEXT "@* @* ** ^<>",UfoPosX,DownVal+40
    DRAWTEXT "OoO< @c@**",UfoPosX,DownVal+60
NEXT ct
CLS
TEXTFONT 48
COLOR 255,255,255
DRAWTEXT "You Win!",250,300
FOR y=1 TO 3
    CLS
    DRAWTEXT "You Win!",250,300
    FOR x=0 TO 2
        DRAWTEXT "\ O /",120+x*200,450
        DRAWTEXT "   ||",118+x*200,490
        DRAWTEXT "/ \",144+x*200,540
    NEXT x
    FOR x=1 TO 1000
    NEXT x
    CLS
    DRAWTEXT "You Win!",250,300
    FOR x=0 TO 2
        DRAWTEXT "  O",120+x*200,450
        DRAWTEXT "  /||\",116+x*200,490
        DRAWTEXT "/ \",144+x*200,540
    NEXT x
    FOR x=1 TO 1000
    NEXT x
NEXT y

FOR x=1 TO 2000
NEXT x
GOTO again
END

DrUfo:
COLOR 155,200,200
DRAWTEXT "___",UfoPosX+16,DownVal
DRAWTEXT "|  o  |",UfoPosX+9,DownVal+29
IF UfoPt=1 THEN  
    DRAWTEXT "/===\",UfoPosX+3,DownVal+57
END IF
IF UfoPt=2 THEN
    DRAWTEXT "/+==\",UfoPosX+3,DownVal+57
END IF
IF UfoPt=3 THEN   
    DRAWTEXT  "/=+=\",UfoPosX+3,DownVal+57
END IF
IF UfoPt=4 THEN
    DRAWTEXT "/==+\",UfoPosX+3,DownVal+57
END IF
DRAWTEXT "_____",UfoPosX,DownVal+55
UfoPt=UfoPt+1
IF UfoPt=5 THEN
    UfoPt=1
END IF
RETURN

BtnSt:
IF Touch=1 THEN
    Tx=TouchX
    Ty=TouchY
    IF Tx>=600 AND Tx<=700 AND Ty>=760 AND Ty<=860 THEN
        IF CanPosX<600 THEN
            CanPosX=CanPosX+CanMov
        END IF
    END IF
    IF Tx>=450 AND Tx<=550 AND Ty>=760 AND Ty<=860 THEN
        IF CanPosX>-40 THEN
            CanPosX=CanPosX-CanMov
        END IF
    END IF
    IF Tx>=50 AND Tx<=150 AND Ty>=760 AND Ty<=860 AND ShellCt=0 THEN
        ShellX=CanPosX+101
        ShellCt=1
    END IF
END IF
RETURN

DrCan:
COLOR 150,250,180
DRAWTEXT "/\",CanPosX+100,CanPosY+100
DRAWTEXT "/-\",CanPosX+94,CanPosY+116
DRAWTEXT "[__]",CanPosX+82,CanPosY+135
RETURN


DrConsole:
FOR xct=1 TO 46
    PRINT
NEXT
PRINT "          ";
PRINT "         Fire         ";
PRINT "                                                                       ";
PRINT "    <<< Move    ";
PRINT "         ";
PRINT "      Move >>>"

PRINT "          ";
PRINT "+------------------+";
PRINT "                                                                       ";
PRINT "+------------------+";
PRINT "         ";
PRINT "+------------------+"
FOR xct=1 TO 5
    PRINT "          ";
    PRINT "|                      |";
    PRINT "                                                                        ";
    PRINT "|                      |";
    PRINT "         ";
    PRINT "|                      |"
NEXT
PRINT "          ";
PRINT "+------------------+";
PRINT "                                                                       ";
PRINT "+------------------+";
PRINT "         ";
PRINT "+------------------+"
RETURN

UfoPosCal:
DownCt=DownCt+1
GOSUB Coin
MovVal=INT(RND*MovRangX)
MoveX=CoinRes*MovVal
UfoPosX=UfoPosX+MoveX
IF UfoPosX>(SW-80) THEN
    UfoPosX=UfoPosX-MoveX
END IF 
IF UfoPosX<35 THEN
    UfoPosX=35
END IF
GOSUB Coin
MovVal=INT(RND*MovRangY)
MoveY=CoinRes*MovVal
UfoPosY=UfoPosY+MoveY
IF UfoPosY<30 THEN
    UfoPosY=30
END IF
DownVal=UfoPosY+INT(DownCt*2.5)
IF DownVal >(SH-400) THEN
    GOTO Ending
END IF 
RETURN

Coin:
IF RND<.5 THEN 
    CoinRes=1
ELSE
    CoinRes=-1   
END IF 
RETURN
Ending:
CLS
GOSUB DrCan
FOR x=1 TO 10
    COLOR 255,0,0
    CIRCLE CanPosX+115,CanPosY+150,x*30,3
    FOR y=1 TO 300
    NEXT y
NEXT x
CLS

FOR x=1 TO 8
    BCOLOR 255,0,0
    FOR y=1 TO 300
    NEXT y
    BCOLOR 0,0,0
    FOR y=1 TO 300
    NEXT y
NEXT x
TEXTFONT 48
DRAWTEXT "You Lose",250,400
GOTO again
END
again:
INPUT "Play again? (Y/N)",a$
IF a$="Y" OR a$="y" THEN
    GOTO start
ELSE
    PRINT "Thank you"
END IF
END


トラックバック
http://synthfooljp.blog87.fc2.com/tb.php/1015-487cab95
この記事にトラックバックする(FC2ブログユーザー)


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。