TKYM's profile※ 画面は開発中のものですPhotosBlogListsMore Tools Help

Blog


    October 15

    HSP で作る少しキレイかもしれない画面

    image

    グラデーションっぽい画像を生成しようと、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/