fullscr.hsp

sample\hgimg3\fullscr.hsp » Plain Format

#include "hgimg3.as"

	;	フルスクリーンサンプル
	;	[ESC]キーで終了します。
	;
	fullscr=1		; スルスクリーンか? (1=yes/0=no)
	_dispx=640:_dispy=480	; 画面サイズ
	;
	randomize
	if fullscr=0 {
		screen 0,_dispx,_dispy,0
	} else {
		bgscr 0,_dispx,_dispy,0
		hgsetreq SYSREQ_DXMODE,1	; フルスクリーンモードを指定
		hgsetreq SYSREQ_DXWIDTH,_dispx	; フルスクリーン解像度X
		hgsetreq SYSREQ_DXHEIGHT,_dispy	; フルスクリーン解像度Y
	}
	cls 4
	hgini
	if fullscr {
		wait 100
		mouse -1
		gsel 0,2
	}

	;	テクスチャフォント表示の準備
	;
	setfont 16,16,12,1	; font Tex select(cx,cy,px,mode)
	texload "fontchr.bmp"	; フォントテクスチャの登録

	;	モデル登録
	;
	setuv 0,0,128,128
	addmesh m_mesh,8,8,16,30,30
	texload "btex.bmp"
	regobj obj, m_mesh

	;	表示の準備
	;
	clscolor $80			; 背景色の設定
	cammode CAM_MODE_LOOKAT
	setpos HGOBJ_CAMERA, 0,-10,30	; カメラ位置の設定
	frame=0
	scfade=0
	scfadev=256
	gosub *fadein

*main
	gosub *alldraw
	stick key,$3ff
	if key&128 : goto *main2

	;	カーソルキーで動かす
	;
	if key&1 : addpos HGOBJ_CAMERA, -0.2, 0.0
	if key&4 : addpos HGOBJ_CAMERA, 0.2, 0.0
	if key&8 : addpos HGOBJ_CAMERA, 0.0, 0.2
	if key&2 : addpos HGOBJ_CAMERA, 0.0, -0.2

	goto *main

*main2
	gosub *fadeout
	repeat
	gosub *alldraw
	if scfadev=256 : break
	loop

*owari
	end


*alldraw
	;	フレーム描画のサブルーチン
	;
	hgdraw				; 描画
	fprt "Frame:"+frame,8,8
	fprt "[ESC] key to abort.",8,30
	if scfade {			; フェード処理
		scfadev += scfade
		if scfadev>255 : scfadev=256
		if scfadev<1 : scfadev=0 : scfade=0 
		color 0,0,0:gmode 3,640,480,scfadev
		hgrect 320,240,0
	}
	hgsync 15			; 時間待ち
	frame++

	return

*fadein
	scfade=-4
	return
*fadeout
	scfade=4
	return