Rubyをいじりつつ「HSPの時はどんなスクリプトからはじめたっけ?」と思い出したものを再現。画像の輪郭を縁取って塗り絵を作るスクリプト。
同じ事をRubyでやるのは(たぶん)大変だし、HSPのグラフィックの使いやすさは高いと思う。最近自分の中では「オブジェクトをあまり使わないGUIアプリならHSP」で固定されつつある。
画像によっては勝手にredraw 1されてしまう模様。未知の不具合?#const BORDER 30 // 閾値
*loadPicture
dialog "bmp;*.jpg;*.gif", 16
if stat == 0 : end
picName = refstr
picload picName
picWidth = ginfo_winx
picHeight = ginfo_winy
buffer 1, picWidth, picHeight, SCREEN_PALETTE
repeat 255
palette cnt, cnt, cnt, cnt, 0
loop
palette 255, 255, 255, 255, 1
gcopy 0, 0, 0, picWidth, picHeight
*valueInit
dim dx, 4 : dim dy, 4
dx = 0, 1, 0, -1
dy = 1, 0, -1, 0
*main
gsel 0
title "変換中…" : redraw 0
color 255, 255, 255 : boxf
color
repeat picHeight
y = cnt
repeat picWidth
x = cnt
count = 0 : dValue = 0
gsel 1 : pget x, y
col = ginfo_r
repeat 4
if (0 <= x + dx(cnt))&(x + dx(cnt) < picWidth)&(0 <= y + dy(cnt))&(y + dy(cnt) < picHeight) {
pget x + dx(cnt), y + dy(cnt)
count++
dValue += abs(col - ginfo_r)
}
loop
if (dValue > BORDER * count) {
gsel 0 : pset x, y
}
loop
await 1
loop
gsel 0 : redraw 1
title "変換終了!"
stop
2007年6月25日月曜日
塗り絵自動生成
登録:
コメントの投稿 (Atom)
1 件のコメント:
ellerさんこんにちは
レスポンス・ナンバー・44ことリノシヨことりすとです
>HSPのグラフィックの使いやすさは高いと思う。
>最近自分の中では「オブジェクトをあまり使わないGUIアプリならHSP」で
>固定されつつある。
僕も手軽なGUI操作でHSPやってます
やっぱそうですよね
>電卓は昔からの難題で、最近ようやく実装方法が分かってきました。
>……再帰も好きなのかな?
1,電卓を作る
2,”(”と”)”の処理を加える
3,関数電卓を作る
4,変数の処理を加える
5、etc
のような処理の連続がインタプリタを作る手順のようです
僕が開発wikiで”文字列を置き換えてコードを生成しよう”
という処理をやってるのも
究極的にはインタプリタの処理に近づくかもしれません
そのようななことがこんな本に書いてあります
「いまどきのプログラム言語の作り方」randy 著
amazonのキーワードでググってください
最近はコメントにもうちょっと勉強すれ的なことを書いてたので
勉強中ですが、いつか再開したいです
ellerさんには色々やってもらって申し訳ないですが
いまのところ、しばらく中断というかんじです
ご容赦ください
コメントを投稿