HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0720
いかそばa2d alEraserBrushでalDrawLineしても消せない2解決


いかそば

リンク

2020/7/20(Mon) 20:39:05|NO.91050

alEraserBrushでalDrawLineしても消せないのですがどうすれば消せるんですか?
alEraserBrushを解除する方法はあるのですか?
すごく混乱してます。検索しても解決しないしどうしたら…


#include "a2d.hsp" chkbox "消しゴム",chk_eraser alcreateimage 0 alPenWidth 5 alPenStyle 0 repeat redraw 0 getkey ml,1 if ml=1:{ if chk_eraser=1:{ alEraserBrush alDrawLine mousex,mousey,mx,my }else:if chk_eraser=0:{alDrawLine mousex,mousey,mx,my} mx=mousex my=mousey } alcopyimagetoscreen 0,0 redraw 1 await loop



この記事に返信する


あらや

リンク

2020/7/20(Mon) 21:54:15|NO.91051

Artlet2Dの仮想イメージは透明なフィルム、
HSPウィンドウを白い紙としてイメージしてください。

一度透明なフィルムに適当な絵を描いて
コピー機で紙にコピーします。

その後で何らかの方法(消しゴム)でフィルムに書いた絵を消して
同じ紙に再度コピーしてみても、先にコピーした物は消えません。

いかそばさんのソースはこんな感じの流れになっています。

なので、一旦HSPウィンドウの中身を白で塗り潰してから
仮想イメージをコピーしてみましょう。

#include "a2d.hsp" chkbox "消しゴム",chk_eraser alcreateimage 0 alPenWidth 5 alPenStyle 0 repeat redraw 0 getkey ml,1 if ml=1:{ if chk_eraser=1:{ alEraserBrush // これは『alColor 0, 0, 0, 0』と書くのと同じ alDrawLine mousex,mousey,mx,my }else:if chk_eraser=0:{ // チェックを外したらアルファ値だけ255にする alColor 0, 0, 0, 255 alDrawLine mousex,mousey,mx,my } mx=mousex my=mousey } color 255, 255, 255: boxf; // HSPのウィンドウを元の色で塗り潰してから alcopyimagetoscreen 0,0 // 仮想イメージの内容をコピー redraw 1 await loop
コメントを入れた箇所が追加した行や関連する説明です。



いかそば

リンク

2020/7/21(Tue) 10:11:44|NO.91052

あらやさんありがとうございます!
そうすればいいんですね!本当にありがとうございます!\(`;ω;´)/



ONION software Copyright 1997-2023(c) All rights reserved.