Corona SDK Mobile Game Development:Beginner's Guide
上QQ阅读APP看书,第一时间看更新

Images

Many art assets used in Corona applications are sets of images. You will notice that bitmap image objects are types of display objects.

Loading an image

By using display.newImage( filename [, baseDirectory] [, left, top] ), an image object is returned. The image data is loaded from a filename you specified to your image and looks in the system.ResourceDirectory for that file. The acceptable types of image files that are supported are .png (PNG-24 or higher only) and .jpg files. Avoid high .jpg compression as it may take longer to load on a device. .png files have better quality over .jpg files and are used to display transparent images. .jpg files do not save transparent images.

Image autoscaling

The default behavior of display.newImage() is to autoscale large images. This is to conserve texture memory. However, there are times when you do not want to have images autoscaled and there is an optional Boolean flag in the parameter list to control this manually.

To override autoscaling and show the image at its full resolution, use the optional isFullResolution parameter. By default, it is false, but if you specify true, then the new image is loaded at its full resolution:

display.newImage( [parentGroup,] filename [, baseDirectory] [, x, y] [,isFullResolution] )

The following are the limitations and known issues:

  • Indexed PNG image files are not supported.
  • Grayscale images are currently not supported; images must be RGB.
  • Images will still be autoscaled if they are larger than the maximum possible texture dimensions of the device. This is usually 1024x1024 (iPhone 3G) or 2048x2048 (iPhone 3GS and iPad).
  • If you reload the same image multiple times, the subsequent calls to display.newImage ignores the isFullResolution parameter and takes on the value passed the first time. In other words, the way you load an image file the first time affects the autoscaling setting the next time you load that same file. This is because Corona conserves texture memory by automatically re-using a texture that has already been loaded. As a result, you can use the same images as many times as you want without consuming additional texture memory.

More information on Corona SDK's documentation is located on Ansca's website: http://www.anscamobile.com.