スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

Bitmap オブジェクト

 2010-09-24
みなさん、set_pixel、fill_rect、gradient_fill_rect ってメソッドはご存知ですか?
これらのメソッドにはある落とし穴があるのですが、それもご存知でしょうか?

これらのメソッドは、ビットマップに点や矩形を描画するものではなかったのです!!

では何をしているのかというと、ビットマップの色を変更しています。
何が違う?と思ったかたは次をご覧ください。
sp = Sprite.new
sp.bitmap = Bitmap.new(544, 416)
# 画像をを真っ白に
sp.bitmap.fill_rect(sp.bitmap.rect, Color.new(255,255,255))
Graphics.wait(40)
# 矩形を重ねる処理なら、透明を重ねたところで変化無いはず。。。
sp.bitmap.fill_rect(sp.bitmap.rect, Color.new(0,0,0,0))
Graphics.wait(40)
# アルファチャンネルは無視するのかもしれない可能性を潰す
for i in 0..255
sp.bitmap.fill_rect(sp.bitmap.rect, Color.new(50,200,30,255-i))
Graphics.wait(1)
end
p "完了!"; exit
いかがだったでしょうか?
ビットマップに矩形を重ねるペイントのような処理ではなく、
設定されている色を変更する処理だということが分かったと思います。

では、重ねる描画が行いたい場合はどうすれば良いのでしょう?
その場合は、別のビットマップを用意して、blt で重ねるしかないでしょうね。
んでんで、そんな処理は自動で行っちゃえってことで、
Bitmap Class EX に新しいメソッド追加しておきました。
オーバーロードにも対応してますので、デフォのメソッドのように使いますよ。





<拡張> ピクチャの操作」に、ピクチャの画像を保存する機能を追加したよ!
いや違う、その機能を追加するおまけスクリプトを作ったよ。
日付変わってから公開するからちょっと待って。

イベントコマンドでいろいろ作っちゃう人には便利なんじゃないかな?
SS1009241033306.png
スクショは、ウィンドウメッセージと同じものを画像として保存するサンプルです。

あ、そういえば、ピクチャ側で変更されたものは適用されないです。
純粋にビットマップを保存します。





> ちる さん
ん~、ちょっと無理ですね。
たしか、全処理を一時停止して割り込む形で実行するものだった気がするので。
メッセージロールが終わるまでは、どんな処理も受け付けないかな?
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/458-c2e548b2
≪ トップページへこのページの先頭へ  ≫
カレンダー
03 << 2017/04 >> 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。