October 15
グラデーションっぽい画像を生成しようと、HSPをいじっていた。
そして、なんとなくゲームっぽくテキストを追加してみた。
ついでにそれが近況報告になってしまっているというおまけ。
ソース:
sr = 200; 中心の色(開始色)
sg = 200;
sb = 200;
sdistance = 100;開始色-中間色 の距離
r = 60; 中間色
g = 20;
b = 0;
edistance = 200;中間色-終了色 の距離
er = 20; 終了色
eg = 0;
eb = 40;
cx = 150; 開始色となる座標
cy = 100;
wid = 520; 画面サイズ
hei = 400;
screen 0, wid, hei
redraw 0; 再描画を一時無効化する
repeat hei
y = cnt;
dy = y - cy;
repeat wid
x = cnt;
dx = x - cx;
dist = sqrt(dx*dx + dy*dy);
if dist <= sdistance {
pr = sr - ((sr - r)*dist/sdistance);
pg = sg - ((sg - g)*dist/sdistance);
pb = sb - ((sb - b)*dist/sdistance);
}else : if dist < sdistance + edistance {
pr = r - (r - er)*(dist-sdistance)/edistance;
pg = g - (g - eg)*(dist-sdistance)/edistance;
pb = b - (b - eb)*(dist-sdistance)/edistance;
}else{
}
color pr, pg, pb;
pset x, y;
loop
loop
buffer 2, 500, 80 ;白い見えない画面を作る
cls
;それをメインの画面に配合する
gsel 0;
pos 10,310
gmode 5, 580, 80, 150
gcopy 2, 0, 0, 580, 80
pos 20, 320
font "MS P 明朝", 18, 2
mes "レーシックを受けると、ハロー・グレア現象に夜間は悩まされる。\nしかし、月がこんな風に見えるのも、今だけだ・・・。"
color 200,200,200
pos 485, 370
font "MS P 明朝", 18, 2
mes "▼"
redraw 1; 描画有効に戻す
pset という命令で1ドットずつ色をつけているので、時間はかかる。
内容は単に、ある座標からの距離で色を変化させるだけ。
HSPのサイト : http://hsp.tv/