その手こずった部分ですが・・・・。
現在開発中のRPGアプリについてなんです。。。。
「RPG」には、敵というのがつきものです!!
仮に「100種類の敵を用意したい!!」と思えば、
100種類分の敵画像を用意するのがゲーム作りとしてベスト!!ですが・・・・・。。
私は、絵が描けませんし、
100匹分の画像を用意するとデータ量が多くなります。
(今のスマフォなら耐えれるとは思いますが・・・・・。。)
とにかくこれでは、時間がかかります!!!!出来れば、
少ない画像数でプログラム内で100種類の敵データを作成したい所です!!
ほんで、アホなりに考えた結果・・・・・・・・・・・・・・・・・・。。
画像の特定の色を変えて、色違いの敵を作成する!!
とぃう、よくあるパターン????の考えで落ち着く事にしました・・・・・・。。
ほんで、早速以下↓(大体の流れ)
/**************************************************************/
//色を変更した画像データ
※読み込み(済)
Bitmap bitmap;
※1
//元画像のサイズ取得
int height = 画像縦サイズ;
int width = 画像横サイズ;
//元画像のピクセル(色)情報の取得
int[] pixels = new int[( width * height )];
bitmap.getPixels( pixels, 0, width, 0, 0, width, height );
//ループで、色情報を変更していく。
for( //※省略{
pixels[( pixY + pixX * width )] = Color.argb(透過, 赤, 緑, 青);
}//end loop
//最後に変更後のピクセル(色)情報を再設定
bitmap.setPixels( pixels, 0, width, 0, 0, width, height );
/**************************************************************/
とやると、
bitmap.setPixels( pixels, 0, width, 0, 0, width, height );
がエラーで落ちます・・・・・。。。
エラー内容を見ると、どうやら・・・。
「画像データを再設定出来ない!!」
的な感じ??でした・・・・・。。
というわけで、調べてみると・・・・・・・・・・。。
上記の※1の部分に、コレ↓
/**************************************************************/
//編集禁止画像を編集有効にするため(Copy??)
if( _bitmap.isMutable( ) != true ){
_bitmap = _bitmap.copy( Bitmap.Config.ARGB_8888, true );
}
/**************************************************************/
を記述してやると無事、色情報を変更する事が出来ました!!
多分、
Bitmapデータをいじりたいなら・・・
許可がないBitmapデータは、編集出来んから、
偽者をコピーして作って、そいつをいじれ!!!
という事ですかね・・・・・???
まぁ、間違ってるかもしれませんが・・・・。。
とりま、これでダイジョウブでした!!
ってか、初めて真面目な事記録した感じッスww
お疲れしたぁぁっぁ!!!!