スプライトいじり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番目以降 モードによっては、さらに引数を要求することもある。

サンプル画像

モード0,1,2の場合

モード3,4,5の場合

スクリプト

*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座標、モザイクの大きさ、の五つが必要です。
  • 一つのスプライトを複数の方法でいじることはできます。順番にご注意ください。

使い道

適当に考えてください。

発展

塗り潰し長方形もいいけれど。それをさらに発展させられるなあ。