ja ja ja ja ja ja ja fr ca ja ja sv ja en ja ja ja ja ru ja ja ja ja ja ja ja ja ja ja en ja ja ja ja en
a2dの描画じゃ速度的に厳しい時用(加工にa2dの命令を使用)
アルファ付き画像をgmode7用に加工してHSPバッファに入れるモジュール
#include "a2d.hsp" //必ず#include "a2d.hsp"の後に挿入 #module //アルファ値付き画像をgmode7で使えるようにidで指定したバッファへ指定サイズ毎に画像を左、アルファ値(グレースケール)を右にして全て縦に並べる //gmode7picload fname, id, sizex, sizey // fname "ファイルネーム" // id = 読み込むHSPバッファID // sizex = 画像が複数キャラからを含んでる時に1キャラのXサイズ(celdivにも設定される) // sizey = 画像が複数キャラからを含んでる時に1キャラのYサイズ(celdivにも設定される) // cpx = celput時の中心X座標 // cpy = celput時の中心Y座標 //statに分割数が返る(celput用の分割数では無い) #deffunc gmode7picload str fname,int id,int sizex,int sizey,int cpx,int cpy gsel_bak=ginfo_sel alCreateImageByFile 99, fname if sizex<=0 {_sizex=alGetWidth()}else{_sizex=sizex} if sizey<=0 {_sizex=alGetHeight()}else{_sizey=sizey} divx=(alGetWidth()/_sizex) divy=(alGetHeight()/_sizey) buffer id,_sizex*2,divx*divy*_sizey alResetCopyMode repeat divx*divy alCopyImageToScreen 99, id, 0, _sizey*cnt, _sizex,_sizey,_sizex*(cnt\divx),_sizey*(cnt/divx) //通常の画像を縦に並べてコピー loop if length(cmatrix)=1 {; アルファチャネルをグレースケールに変換設定値 cmatrix(MAT_R) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_G) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_B) = 0.0, 0.0, 0.0, 1.0, 0.0 cmatrix(MAT_A) = 0.0, 0.0, 0.0, 0.0, 1.0 } alCopyModeColorMatrix cmatrix //アルファチャネルをグレースケールに変換設定 alCopyImageToImage 99, 99, 0,0,alGetWidth(), alGetHeight(), 0, 0 //コピー(アルファチャネルがグレースケール画像になる) alResetCopyMode //変換設定を元に戻す repeat divx*divy alCopyImageToScreen 99, id, _sizex, _sizey*cnt, _sizex,_sizey,_sizex*(cnt\divx),_sizey*(cnt/divx) //グレースケールを通常画像の右に縦に並べてコピー loop celdiv id,sizex,sizey,cpx,cpy gsel gsel_bak return divx*divy #global //モジュールここまで sizex=80 sizey=50 id=1 gmode7picload dir_exe+"\\sample\\hsp3dish\\hsplogo8.png",id,sizex,sizey div=stat repeat redraw 0 color 200,80,80 boxf gmode 7,sizex,sizey pos 300, 200 gcopy id,0,sizey*(cnt\div) //縦に並んでるのでコピー元の左上Y座標を変更 pos 300, 200+sizey celput id,(cnt\div)*2 //gmode 7用にしたバッファが透明度用に横が二倍になるので分割画像No.を2倍して指定する必要がある redraw 1//表画面に反映 await 50 loop
gmode7のコピーでも重い場合はOpenGLやDirect3D等でハードウェアアクセラレーションを使うしかない
2013/11/3(Sun) 01:20:18|NO.57959
応用までわざわざありがとうございます。
はうどうぇあーあくせられーしょんですか
また知らない世界の扉を開くのですね、真理が見えてしまう
トップ | HSP3ダウンロード | HSPTVで遊ぶ | HSPで作る | サイト情報 | プライバシーポリシー | お問合せ
ONION software Copyright 1997-2021(c) All rights reserved.