【问题标题】:Loading image into an array将图像加载到数组中
【发布时间】:2009-05-16 04:08:52
【问题描述】:

如何将某些图像加载到数组中,例如

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,它是否能够并排而不是前面的像素

抱歉,我仍在学习并尝试复习一些基础知识

【问题讨论】:

  • 你的问题不太清楚
  • 您在说什么语言,您的应用程序是什么?您可以将图像存储在字节数组中,但这不会为您提供有关像素的详细信息。但是,如果您对查看图像中的单个像素或裁剪或其他内容感兴趣,您将不得不查看特定于您所使用的语言的库。

标签: c++ playstation-portable


【解决方案1】:

似乎您使用 C++ OldSchool Library 进行 PSP。根据其documentation,您应该创建一个包含一组图像的图像文件,然后您就可以使用它创建地图。

//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

看起来这个库的用途非常有限,最好在 forum 上提问。

【讨论】:

    【解决方案2】:

    听起来您想为 2D 游戏构建平铺地图。在这种情况下,您可能希望拥有一个包含所有图块的精灵。然后地图将包含特定图块的索引。

    在绘制图块时,您将根据图块索引复制部分精灵。

    如果您有一个精灵图像,其图块索引如下:

    +---+---+---+---+
    | 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);
    

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 2014-08-20
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      相关资源
      最近更新 更多