更新: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