私はそれがこのように(私はそれを使用してゲームを持っていた、またそれを試したん)行われますが、ここでは今、私の頭に浮かんだアイデアですかわからない:
は、我々が持っているとしましょうmaplestoryのようなキャラクターアピアランス編集のゲーム。簡単にするために、キャラクターは単なるサークル、または2Dボールです。あなたはその色を変えることができ、それは目の色です。ですから、これらのフォルダを持っている:
そして、我々はこれらの目を持っている:
assets/gfx/circles
そして
assets/gfx/eyes
は今、私たちはこのサークルを持って言うことができます
そしてそれらを結合したいと思います。
あなたはそれを行うことができます:
BitmapTextureAtlas playerTextureAtlas = new BitmapTextureAtlas(256, 256 TextureOptions.BILINEAR_PREMULTIPLYALPHA);
TextureRegion playerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(playerTextureAtlas, this, "circles/redcircle.png", 0, 0);
//By executing the next line, we place the eyes over the player texture area.
//There is NO need to keep a reference to the texture region this returns to us, because technically this one and playerTextureRegion are THE SAME - they both hold the same region in the texture (As long as they have the same sizes, of course)
BitmapTextureAtlasTextureRegionFactory.createFromAsset(playerTextureAtlas, this, "eyes/yelloweyes.png", 0, 0);
覚えておいてください - 目の画像の背景は、それが円を上書きしないようにtransperantする必要があります! TextureOptions
パラメータで遊んでください。私が使用したものがこの目的を満たすかどうかはわかりません。おそらく別のものがありますか?
最後に、あなたの目に目をつけ、同じサイズの円にしてください。この方法では、フィットするかどうかをテストする方が簡単です。目をちょうど小さな四角形にすると、円の上に置くべき場所が見つかるまで、目をくらます必要があります。時間の無駄...
これで、異なるボディ/アイ/ヘアなどをロードして配置し、カスタマイズしたプレーヤーを手に入れることができます。
ありがとうございます!しかし、私はそれをカスタマイズするためにどのように使用しますか?つまり、プレーヤーが新しい目の色を購入したとき、プログラムを自動的に変更するにはどうすればいいですか?また、プログラムのどこに私のボイドを置くのですか?その混乱..ありがとう! – Baruch
クラス 'Player'を作成し、ユーザーがゲームを終了してインスタンスを保存すると(例えばファイルに)、ゲームを起動するときにインスタンスをロードします。次に、このクラスでは、髪の色、目の色などを保持するフィールドをいくつか持つことができます。次に、ゲームが読み込まれるたびに変更が表示されます。ただし、ユーザーがカスタマイズを変更したときに、新しいテクスチャを再読み込みすることができます。 「私のボイド」はどういう意味ですか? – Jong
例:public void buyItem(){ if(money> moneyNeeded){ eyecolor = blue; } } – Baruch