スプライトいじりDLL
2011/2/6追記
今後は、スプライト操作DLLをお使いください。
レイヤー型ではなく、汎用型DLLを作りました。
先に普通の方法で読み込んだスプライトを6種類の方法でいじることができます。
http://www.eiji8pou.net/download/sp.zip
基本的な文法
exec_dll "sp.dll/0,1,1"
sp.dllの後の数字の意味は以下のようになっています。
1番目 | いじくるスプライトの番号 |
---|---|
2番目 | そのスプライトの種類。0は普通のコピー。1は右側マスク画像つき(nspng.dllで読み込んだアルファブレンドpngを含む) |
3番目 | モード。いじる方法。0〜5 |
4番目以降 | モードによっては、さらに引数を要求することもある。 |
スクリプト
*define deletemenu rmenu "セーブ",save,"ロード",load game *start rmode 1 bg "back.jpg",0 lsp 0,":a;image.png",0,0 lsp 1,":a;image.png",0,0 lsp 2,":a;image.png",0,0 getspsize 0,%0,%1 amsp 1,(640-%0)/2,0 amsp 2,640-%0,0 caption "ネガ・モノクロ・モザイク" exec_dll "sp.dll/0,1,0" exec_dll "sp.dll/1,1,1" exec_dll "sp.dll/2,1,2,100,100,210,150,6" print 1 @ csp -1 lsp 0,":a;image.png",0,0 lsp 1,":a;image.png",0,0 lsp 2,":a;image.png",0,0 getspsize 0,%0,%1 amsp 1,(640-%0)/2,0 amsp 2,640-%0,0 caption "左右反転・上下反転・シルエット" exec_dll "sp.dll/0,1,3" exec_dll "sp.dll/1,1,4" exec_dll "sp.dll/2,1,5" print 1 @ end
注意点
- セーブロードには対応していません。
- いじくった画像は不可逆です。特に、モノクロ・モザイクは一旦してしまったら戻す手段はありません。
- 一度cspで削除してから再度読み込んでください。
- いくつかのモードはアルファブレンドつき画像でないと動作しません。
- モザイクモードの引数は、モザイクをかける領域の左上x,y座標、右下x,y座標、モザイクの大きさ、の五つが必要です。
- 一つのスプライトを複数の方法でいじることはできます。順番にご注意ください。
使い道
適当に考えてください。
発展
塗り潰し長方形もいいけれど。それをさらに発展させられるなあ。