|
|
2011/8/30(Tue) 07:36:38|NO.40944
OBAQでオブジェクトの表示に画像を用いる際、アルファブレンドコピーを使うために、qmat3命令でgmode7を指定したのですが、反映されません。
gmode3などの他のコピーモードだと正常に反映されるのですが、gmode7だけがうまくゆきません。
ご助言をいただけましたら幸いです。
#include "obaq.as"
//アルファブレンド用の画像を用意
buffer 1,100,50
color ,255 : boxf 0,0,50,50
color 255,255,255 : boxf 50,0,100,50
screen 0,320,240:title "OBAQ"
qreset
qborder -40,-30,40,30
qaddpoly obj1,4,25,40,,10,10
qaddpoly obj2,4,50,40,,10,10
qmat obj1,mat_spr,1
qmat obj2,mat_spr,1
//マテリアル表示パラメータ
qmat3 obj1,3,128 ; gmode 3
qmat3 obj2,7,256 ; gmode 7
*main
redraw 0
color ,,255:boxf ;背景
pos 0,0 : gmode 7 : gcopy 1,0,0,50,50 ; gmode7をgcopyを使った場合、正常に反映される
qexec
qdraw 1
redraw
await 20
goto *main
|
|
2011/9/2(Fri) 08:59:04|NO.41010
grotateと同様、gmode7は対応していないんだと思います。
こちらのサイト( http://simasuzu.web.fc2.com/)で公開されている embed_grotate を使うと
アルファブレンドコピーできます。
その他には、HGIMG3と組み合わせてtexload2でアルファチャンネル付き画像を登録なども。
もしくは↓のように、gmodeの 5 と 6 のオブジェクトを重ねて無理やりそれっぽく見せたりも。
#include "obaq.as"
//アルファブレンド用の画像を用意
bgscr 1,100,100
color ,255 : boxf 0,0,100,100
gradf 0,50,50,50,0,$000000,$00ff00
gradf 50,0,50,100,0,$000000,$ffffff
celdiv 1,50,50
screen 0,320,240:title "OBAQ"
qreset
qborder -40,-30,40,30
qaddpoly obj1,4,40,20,0.5,10,10
qgroup obj1,1,2
qaddpoly obj2,4,40,20,0.5,10,10,0
qgroup obj2,2,1
qtype obj2,type_bind
qmat obj1,mat_spr,1,3
qmat obj2,mat_spr|mat_delay,1,2
//マテリアル表示パラメータ
qmat3 obj1,6,256 ; 減算コピー
qmat3 obj2,5,256 ; 加算コピー
*main
redraw 0
color ,,255:boxf ;背景
pos 0,0 : gmode 7 : gcopy 1,0,0,50,50 ; gmode7をgcopyを使った場合、正常に反映される
qexec
// obj1 に obj2 を重ねる
qgetpos obj1,x,y,r
qpos obj2,x,y,r
qdraw 1
redraw
await 20
goto *main
|
|
2011/9/3(Sat) 11:52:34|NO.41042
解決しました。
K-s様、ありがとうございました。
|
|