HSP3Dish サンプル③

更新:2022年5月18日   HSPトップへもどる

『 てがき 』  ◆ブラウザ上で動作するページ

★このスクリプトは 画像を使用していませんので、WebDishサービスにそのまま登録できます

#include "hsp3dish.as"

	title "てがきJ 2022-5-17"	// 480*800
	// 《 変数定義 》
	ositeru = 0			//タッチ押下フラグ
	dots_max = 1000		//ドット上限
	dim cx, dots_max	//ドットx座標格納配列
	dim cy, dots_max	//ドットx座標格納配列
	dot_cnt = 0			//ドットの数
	futosa = 20			//ドットの太さ
	cen = futosa/2		//ドットの中心
	small_on = 0		//縮小表示オン
	//ボタンオブジェクト	
	pos 480-64,0 : button "消す", *kesu
	pos 480-64,80 : button "縮小表示", *small_setting

*top
// メインループ ====================================================
repeat
	redraw 0			//hsp3dishで画面描画する際さいしょに必要
	//《 物理キーボードとマウス入力検知 》
	stick key : if key&128 : end	//[ESC]キーで終了
	//------------------------------------------------------
	// 《 タッチ検出 》
	mtlist touchid			//現在タッチされている情報を持つポイントIDリストを取得
	id = touchid(0)			//シングルタッチのみ対応
	mtinfo touch,id
	//if touch(0) = 1 && ositeru = 0 {	//連打にならないよう最初一回タッチした瞬間だけ実行
	if touch(0) = 1 {	//タッチしているあいだは実行
			x = mousex 	//rnd(480)
			y = mousey	//y = 200 //y = rnd(400)
			cx(dot_cnt)= x
			cy(dot_cnt)= y
			dot_cnt++	//
			if dot_cnt >= dots_max { dot_cnt = 0 }  
			ositeru = 1								//押下一回目しか実行されないためのフラグ
	}
	if touch(0) = 0 && ositeru = 1 { ositeru = 0  } //タッチの指が離れたら押下フラグをリセット
	//------------------------------------------------------
	// 《 描画 》
	//画面エリアぬりつぶし
	color 0,0,128 : boxf
	//マウス位置表示(開発用)
	color 255,255,255 : pos 0,4 : mes "("+mousex+","+mousey+") Dot "+dot_cnt+" / "+dots_max+" 縮小表示 "+small_on

	gosub *dots_put							//ドットを描画

	if small_on = 1 { gosub *small_put }	//縮小表示オンなら描画
	
	redraw 1				//hsp3dishで画面描画する際さいごに必要
	wait 0.01	//0.1		//描画書き換え待ち時間 await と wait がある 
loop
stop
//================================================================
//●を表示
*dots_put
	repeat dots_max
		if cx(cnt)=0 : continue //配列のなかみが初期値のままならスキップ
		x = cx(cnt)-cen			//文字(●)を表示する起点が左上なので中心へずらす
		y = cy(cnt)-cen
		pos x,y : mes "●"		//ドット描画
	loop
return
//================================================================
//消す
*kesu
	dim cx, dots_max
	dim cy, dots_max
	dot_cnt = 0

goto *top	//returnでないので注意!
//================================================================
//縮小表示設定
*small_setting

	if small_on = 0 { small_on = 1 }else{ small_on = 0 }

goto *top	//returnでないので注意!
//================================================================
//縮小表示
*small_put

	waru = 4					//縮小設定値
	font "",futosa/waru,16,1	//ドットのフォントサイズ小さくする

	repeat dots_max
		if cx(cnt)=0 : continue //配列のなかみが初期値のままならスキップ
		x = cx(cnt)-cen
		y = cy(cnt)-cen
		pos x/waru,y/waru : mes "●"	//ドット描画
	loop
	font "",futosa,16,1			//もとのフォントサイズにもどしておく

return
//================================================================
stop


   HSPトップへもどる