sample\hsp3dish\view_test.hsp » Plain Format
#include "hsp3dish.as"
#packopt xsize 480
#packopt ysize 640
;
; viewcalc命令サンプル
;
;screen 0,1280,720,0
;bgscr 0,1280,720
randomize
sx=ginfo_sx: sy=ginfo_sy
;viewcalc vptype_2d,2,2
celload "chr.png",1
celload "ball64.png",2
celdiv 2,64,64,32,32
info_os = sysinfo(0)
info_user = sysinfo(1)
info_name = sysinfo(2)
flag_ios=0:flag_and=0:flag_win=0
if instr(info_os,0,"iOS")>=0 : flag_ios=1
if instr(info_os,0,"android")>=0 : flag_and=1
if instr(info_os,0,"Windows")>=0 : flag_win=1
*go_main1
; それぞれの頂点座標と色を配列に代入
x(0)=0 : y(0)=0 : col(0)=$0000ff
x(1)=sx : y(1)=0 : col(1)=$00ffff
x(2)=sx : y(2)=sy : col(2)=$ff0000
x(3)=0 : y(3)=sy : col(3)=$ff00ff
cls
;pos 16,16
objsize 160,40
;objimage 1, 0,0, 0,64, 0,32 ; ボタン画像の指定
;objsize 128,32
if flag_ios=0 {
button goto "TEST END",*owari
}
button "ON",*mul_on
button "OFF",*mul_off
button "NEXT",*go_main2
;objenable 1,0
dp1=1.0
dp2=0.0
dp3=0.0
dp4=0.0
frame=0
gmode 0
*main1
viewcalc vptype_2d,dp1,dp1,dp2
viewcalc vptype_translate,dp3,dp4
stick key,15+0xff000
if key&1 : dp1+=0.1
if key&4 : dp1-=0.1
if key&2 : dp2+=0.01
if key&8 : dp2-=0.01
if key&$4000 : dp3+=0.5
if key&$10000 : dp3-=0.5
if key&$8000 : dp4+=0.5
if key&$20000 : dp4-=0.5
if key&128 : end
py=sin(0.1*frame)*32
frame++
redraw 0
color 64,64,64:boxf
; グラデーションで四角形を描画
gsquare gsquare_grad, x,y,col
color 255,255,255
pos 0,360
mes "p1:"+dp1
mes "p2:"+dp2
mes "p3:"+dp3
mes "p4:"+dp4
;mes "OS:"+info_os
;mes "USER:"+info_user
;mes "NAME:"+info_name
; グラデーションで矩形を塗りつぶし
gradf 0,180+py,320,100, 1, $ff00ff, $ffffff
; 文字を表示
color 0,0,128
font msgothic, 30, 1
pos 64,210+py
mes "HSP3Dish Test"
viewcalc vptype_2d,dp1*2,dp1*2,dp2
; chr.pngの一部を表示
pos 160,0
;gmode 2,128,128
gmode 2,128,128,255
gcopy 1
viewcalc vptype_2d,dp1,dp1,dp2
redraw 1
await 1000/60
;await 12
title "X="+mousex+"/Y="+mousey
goto *main1
*mul_on
gmulcolor 255,0,64
goto *main1
*mul_off
gmulcolor
goto *main1
*wowsub
exec "http://hsp.tv",16
return
*wowsub3
exec "tel:0123456789",16
return
*wowsub4
dialog "OK"
return
*go_main2
maxx=ginfo_winx-32
maxy=ginfo_winy-32
max=20
dim xx,max
dim yy,max
dim px,max
dim py,max
dim rot,max
dim prot,max
repeat max
xx.cnt=rnd(maxx)
yy.cnt=rnd(maxy)
rot.cnt=rnd(4096)
p=rnd(5)-2:if p=0 : p=-1
px.cnt=p*2
p=rnd(5)-2:if p=0 : p=-1
py.cnt=p*2
prot.cnt=rnd(16)
prot.cnt+=8
loop
gmval=2
cls 4
m="HSP3 grotate sample"
button "GMODE 2",*go_gmode2
button "GMODE 5",*go_gmode5
button "GMODE 6",*go_gmode6
button "NEXT",*go_main3
*main2
stick key,15+0xff000
if key&128 : end
redraw 0
color 64,64,64:boxf
gmode gmval,64,64,255
repeat max
pos xx.cnt,yy.cnt
celput 2,cnt&63,1,1,double(rot.cnt)*0.005
xx.cnt+=px.cnt
if (xx.cnt<2)|(xx.cnt>maxx) : px.cnt=-px.cnt
yy.cnt+=py.cnt
if (yy.cnt<2)|(yy.cnt>maxy) : py.cnt=-py.cnt
rot.cnt+=prot.cnt
loop
pos 212,12:color 0,0,0:mes m
pos 210,10:color 255,255,255:mes m
redraw 1
await 1000/60
title "X="+mousex+"/Y="+mousey
goto *main2
*go_gmode2
gmval=2
goto *main2
*go_gmode5
gmval=5
goto *main2
*go_gmode6
gmval=6
goto *main2
*go_main3
tx.0=0:ty.0=0
tx.1=256:ty.1=0
tx.2=256:ty.2=256
tx.3=0:ty.3=256
col.0=0xff0000
col.1=0x00ff00
col.2=0x0000ff
col.3=0xffffff
sw=0
fr=0
cls 4
m="HSP3 gsquare sample"
button "***",*go_sw
button "NEXT",*go_main1
*main3
stick key,15+0xff000
if key&128 : end
redraw 0
color 64,64,64:boxf
n = fr&127:if n>=64 : n=63-(n-64)
x.0=n+0
y.0=n/2+150
x.1=340-n
y.1=n/2+150
x.2=n+340
y.2=330-(n/2)
x.3=0-n
y.3=330-(n/2)
if sw=0 : gsquare 1,x,y,tx,ty
if sw=1 : color 255,0,0:gsquare -1,x,y
if sw=2 : color 255,0,0:gsquare -257,x,y,col
pos 212,12:color 0,0,0:mes m
pos 210,10:color 255,255,255:mes m
redraw 1
await 1000/60
fr++
goto *main3
*go_sw
sw=sw+1 : if sw>2 : sw=0
goto *main3
*owari
end