; ヨッパライゲームサンプル
; onitama / WEB+DB PRESS 2011/6
;
#packopt name "yopparai"
#pack "chr.bmp"
#module
#deffunc fprt str _p1
; fprt "message"
; (画像を使用したフォント表示を行ないます)
; "message" : 表示するメッセージ
; 表示座標は、posで指定した位置から
;
i=0:st=_p1
repeat
a1=peek(st,i):i++:if a1=0 : break
if a1=13 {
a1=peek(st,i)
if a1=10 : i++
continue ; 改行
} else {
celput 1,a1
}
loop
return
#deffunc putscore
gmode 0
pos 0,0:fprt "SCORE "+score@
return
#global
title "Yopparai"
randomize
screen 0,640,480
celload "chr.bmp",1
celdiv 1,16,16,0,0
*start
cls 4
pos 210,128
fprt "Y O P P A R A I"
pos 234,300
fprt "PRESS ENTER"
putscore
repeat
stick key
if key&$30 : break
if key&128 : end
await 24
loop
level=2
score=0
*go
cls 4
color 255,255,255
boxf 0,20,20,480
boxf 620,20,640,480
repeat level*4+8
y=rnd(8)*32+64
x=rnd(16)*32+64
boxf x,y,x+32,y+32
loop
x=320.0:y=440:px=0.0:dir=0.0
*main
redraw 0
color 0,0,0
boxf 0,0,640,16
boxf x,y,x+32,y+32
stick key,15
if key&1 : dir=-0.5
if key&4 : dir=0.5
if key&128 : end
px=limitf(px+dir,-10,10)
x=x+px
y=y-1
score++
pget x+8,y-1:hit=ginfo_r
pget x+16,y-1:hit+=ginfo_r
pget x+24,y-1:hit+=ginfo_r
color 255,255,255
circle x+8,y+26,x+24,y+42
gmode 2
pos x,y:celput 1,$21,2,2
putscore
redraw 1
await 24
if hit : goto *miss
if y>20 : goto *main
pos 320,0:fprt "GOOD!"
level++
wait 300
goto *go
*miss
repeat 32
redraw 0
color 0,0,0
boxf x,y,x+32,y+32
gmode 2
pos x,y:celput 1,$21+(cnt&3),2,2
redraw 1
await 96
loop
goto *start
↑のコードは酔っ払いゲーム。左右ボタンで操作。
;; IEコンポーネントを使ったブラウザ
;
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_NAVIGATECOMPLETE2 252
cls 1
sdim url,512
url="http://hsp.tv/"
objsize 600,24
pos 0,2:mes "URL:"
pos 0,26:mes "WEB Browser Sample"
pos 40,0:input url
objsize 120,24
pos 520,24:button "移動",*wow
pos 400,24:button "進む",*go_f
pos 280,24:button "戻る",*go_b
pos 0,48
axobj ie, "Shell.Explorer.2",640,480-48
num=stat
comevent ie_event, ie, "{34A715A0-6587-11D0-924A-0020AFC7AC4D}",*event ; DIID_DWebBrowserEvents2
ie->"Navigate" url
*main
stop
*event
; COMイベント処理
dispid = comevdisp(ie_event)
if dispid = DISPID_NAVIGATECOMPLETE2 : gosub *OnNavigateComplete2
return
*OnNavigateComplete2
name = ie("LocationURL")
objprm 0,name
pDoc = ie("Document")
name = pDoc("Title")
title name
delcom pDoc
return
*wow
ie->"Navigate" url
goto *main
*go_f
ie->"GoForward"
goto *main
*go_b
ie->"GoBack"
goto *main
↑はウェブブラウザです。
;; SQL serverのバージョンと現在時刻を得る
; (MySQL+MyODBCで確認)
;
#include "hspdb.as"
sdim buf,1024
sdim dsn,256
dsn="TEST"
; ODBC環境の初期化
dbini
if stat : dialog "ODBC環境がありません。終了します。("+stat+")" : end
screen 0,320,200:cls 1
objmode 1,1:objsize 320,24
mes "DSN名:"
input dsn
button "接続",*start
stop
*start
clrobj 1
; DBドライバに接続します
; ODBCのDSN設定であらかじめデータベースを準備しておく必要があります。
dbopen "DSN="+dsn
if stat : dialog "DB接続できませんでした。終了します。("+stat+")" : end
; 接続が成功したら、後はSQLを自由に送信することができます。
; SQLの送信はdbsend、結果はdbgetsで取得してください。
mes "QUERY VERSION:"
dbsend "SELECT VERSION();"
if stat : dialog "SQL送信に失敗しました。("+stat+")" : goto *over
gosub *resput
mes "QUERY NOW:"
dbsend "SELECT NOW();"
if stat : dialog "SQL送信に失敗しました。("+stat+")" : goto *over
gosub *resput
*over
dbclose ; DBとの接続を切ります
stop
*resput ; 結果の表示
; SQLの結果を取得します。多くの場合すぐに終了します。
; 結果が長い場合やネットワーク越しの場合は時間がかかることがあります。
;
repeat
dbgets buf ; 結果の取得
if stat : break ; すべて取得したらループから抜ける
mes buf
loop
return
↑は時計。
*notepad
*paint
*calc
*owari
screen 0,200,200:title "タイルランチャ"
objsize 100,100
pos 0 ,0 :button "メモ帳",*notepad
pos 100,0 :button "ペイント",*paint
pos 0 ,100:button "電卓",*calc
pos 100,100:button "終了",*owari
stop
;メモ帳を起動する
exec "notepad.exe"
stop
;ペイントを起動する
exec "mspaint.exe"
stop
;電卓を起動する
exec "calc.exe"
stop
;プログラムを終了する
end
↑はタイルランチャー。
みんな使えよ!
0 件のコメント:
コメントを投稿