-1

特定の画像を次のような配列セットにロードするにはどうすればよいですか

Map = ( ( 1, 1, 1 ), ( 2, 2, 2 ), ( 3, 3, 3 ) ) 

私は置くことができます

画像を変数に

one = oslLoadImageFile("one.png", OSL_IN_RAM, OSL_PF_5551);

だから私は Map = ( ( one, one, one ) ) のようなことをすることができますか

各画像が 32x32 の場合、1 つ前のピクセルではなく、並べて表示できますか?

申し訳ありませんが、私はまだ学んでいて、私の頭の中でいくつかの基本を調べようとしています

4

2 に答える 2

1

PSP用にC++ OldSchoolライブラリを使用しているようです。そのドキュメントによると、画像のセットを含む必要がある1つの画像ファイルを作成する必要があります。そうすれば、それを使用してマップを作成できるようになります。

//definition of the pointers towards our image
OSL_IMAGE *Zora_tileset;

//definition of the pointers towards our map
OSL_MAP *zora;


 Zora_tileset = oslLoadImageFile("tileset.png", OSL_IN_RAM, OSL_PF_5551);

 //check
 if (!Zora_tileset)
  oslDebug("Check if all the files are copied in the game folder.");

 //configuration of the map
 zora = oslCreateMap(
  Zora_tileset,     //Tileset
  Zora_map,     //Map
  16,16,      //Size of tiles
  64,65,      //Size of Map
  OSL_MF_U16);     //Format of Map

このライブラリの使用法は非常に限られているようです。フォーラムで質問することをお勧めします。

于 2009-09-11T14:25:26.863 に答える
0

2D ゲーム用のタイル マップを作成したいようです。その場合、すべてのタイルを含む 1 つのスプライトが必要になります。マップには、特定のタイルのインデックスが含まれます。

タイルを描画するときは、タイル インデックスに基づいてスプライトの一部をコピーします。

次のようにインデックスが付けられたタイルを含むスプライト画像があるとします。

+---+---+---+---+
| 0 | 1 | 2 | 3 |
+---+---+---+---+
| 4 | 5 | 6 | 7 |
+---+---+---+---+
| 8 | 9 |
+---+---+

次のようなものを使用して、各タイル インデックスにコピーする四角形を計算できます。

const int TILE_SIZE = 32;
const int TILES_PER_ROW = 10;

int xCoordinate = TILE_SIZE * (tileIndex % TILES_PER_ROW);
int yCoordinate = TILE_SIZE * (tileIndex / 10);

Draw(tileSet, xCoordinate, yCoordinate, TILE_SIZE, TILE_SIZE);
于 2009-06-26T01:16:43.990 に答える