view_test.hsp

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