/** * Copyright (c) 2012-2013 Nokia Corporation. All rights reserved. * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. * Oracle and Java are trademarks or registered trademarks of Oracle and/or its * affiliates. Other product and company names mentioned herein may be trademarks * or trade names of their respective owners. * See LICENSE.TXT for license information. */ package com.nokia.example.explonoid.game; import com.nokia.example.explonoid.ImageHelper; import com.nokia.example.explonoid.effects.Spark; import javax.microedition.lcdui.Image; /** * For loading the application resources. */ public class Resources { private static boolean initialized = false; public Image background; public Image signOn; public Image signOff; public Image ball; public Image life; public Image dashboard; public Image menuButton; public Image newGameButton; public Image gameOver; public Image plate; public Image bricks; public Image spark; public Image verticalWall; public Image horizontalWall; /** * Audio recources */ public final String SAMPLE_BONUS = "/bonus.mp3"; public final String SAMPLE_BUTTON = "/button.mp3"; public final String SAMPLE_DEATH = "/death.mp3"; public final String SAMPLE_EXPLOSION = "/explosion.mp3"; public final String SAMPLE_TELEPORT = "/teleport.mp3"; public final String SAMPLE_TRANSITION = "/transition.mp3"; public final String SAMPLE_WALL = "/wall.mp3"; public final String SAMPLE_COLLISION = "/collision.mp3"; public final String SAMPLE_COLLISION2 = "/collision2.mp3"; public final String SAMPLE_COLLISION3 = "/collision3.mp3"; public final String SAMPLE_ELECTRICITY = "/electricity.mp3"; public float scaling = 1.0f; public Resources(float scaling) { this.scaling = scaling; loadResources(); } /** * Free resources */ public void freeResources() { initialized = false; background = null; signOn = null; signOff = null; ball = null; dashboard = null; menuButton = null; newGameButton = null; gameOver = null; plate = null; bricks = null; spark = null; verticalWall = null; horizontalWall = null; } /** * Load resources */ public void loadResources() { if (!initialized) { ImageHelper ih = ImageHelper.getInstance(); background = ih.loadImage("/background.png", scaling); signOn = ih.loadImage("/explonoid_on.png", scaling); signOff = ih.loadImage("/explonoid_off.png", scaling); ball = ih.loadImage("/ball.png", scaling); life = ImageHelper.scaleImage(ball, 0.5f); dashboard = ih.loadImage("/dashboard.png", scaling); menuButton = ih.loadImage("/menu_button.png", scaling); newGameButton = ih.loadImage("/new_game_button.png", scaling); gameOver = ih.loadImage("/game_over.png", scaling); plate = ih.loadImage("/plate.png"); plate = ImageHelper.scaleImage(plate, scale(plate.getWidth()), scale(plate.getHeight() / Plate.ROWS) * Plate.ROWS); bricks = ih.loadImage("/bricks.png"); bricks = ImageHelper.scaleImage(bricks, scale(bricks.getWidth() / Brick.COLS) * Brick.COLS, scale(bricks.getHeight() / Brick.ROWS) * Brick.ROWS); spark = ih.loadImage("/spark.png"); spark = ImageHelper.scaleImage(spark, scale(spark.getWidth() / Spark.COLS) * Spark.COLS, scale(spark.getHeight())); verticalWall = ih.loadImage("/vertical_wall.png"); verticalWall = ImageHelper.scaleImage(verticalWall, scale(verticalWall.getWidth() / 2) * 2, scale(verticalWall.getHeight())); horizontalWall = ih.loadImage("/horizontal_wall.png"); horizontalWall = ImageHelper.scaleImage(horizontalWall, scale(horizontalWall.getWidth()), scale(horizontalWall.getHeight() / 2) * 2); initialized = true; } } /** * Scale a value and return an integer using symmetrical rounding */ public int scale(double value) { double result = scaling * value; return (result < 0) ? (int) (result - 0.5) : (int) (result + 0.5); } }