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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0107
regz透過pngをcelput命令で回転させると、透明部分が白くなってしまう点について4解決


regz

リンク

2016/1/7(Thu) 19:05:59|NO.74044

透過部分のあるpng形式の画像をceldiv、celputを使って、画像No指定を行い描画を行っているのですが、
そのままだと意図通りに表示されるのですが、拡大縮小や回転を行うと透明部分が白色で塗りつぶされた状態になってしまいます。
どこが問題なのでしょうか?
以下が描画部分のサンプルです。


gmode 7,120,120 pos 髪X, 髪Y celdiv 1,120,120,0,0 celput 1,髪枚数,拡大X,拡大Y,回転角



この記事に返信する


暇人

リンク

2016/1/7(Thu) 21:41:47|NO.74048

celputは回転や拡大縮小時と等倍の時で処理を別けてる
等倍時はgcopyと同等
回転や拡縮時はgrotateと同等
grotateでgmode7は効果ない



regz

リンク

2016/1/8(Fri) 14:18:15|NO.74053

なんと……

追加の質問になってしまうのですが、
gmode7やcelputを用いる以外で半透過pngを描画させる(回転、拡大縮小を可能にする)方法は無いのでしょうか?



暇人

リンク

2016/1/8(Fri) 20:59:23|NO.74055

直接HSPのウィンドウバッファにアルファ値を有効にしてコピーするには
一旦HSPウィンバッファとは違う32ビットバッファにアルファ値を含めて置く必要がある
回転も必要ならArtlet2Dモジュールで出来るけどgmode7のコピーと比べたら数倍重い

1フレームに数十回コピーする必要があるならDirectXのhgimg3とか
OpenGLのhgimg4等のグラフィックアクセラレータの機能を使わないと厳しい

hgimg4ならcelput等はそのまま使用できる
gmode7用のバッファを作る必要も無い


#include "hgimg4.as" celload dir_exe+"\\sample\\hsp3dish\\hsplogo8.png" id=stat celdiv id,80,50,40,25 setcls 1,$4040 repeat redraw 0 ; 描画開始 gmode 7,,,256-(cnt\256) pos 300,300 celput id,(cnt/4)\16,5.0,5.0,0.01*cnt redraw 1 ; 描画終了 await 1000/60 ; 待ち時間 loop
hgimg4は結構環境は限定されるかも・・・



regz

リンク

2016/1/11(Mon) 21:28:28|NO.74101

>暇人さん

他の用事で遅れてしまいましたが、無事hgimg4を用いて回転縮小できました!
ありがとうございます!!



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