Resources.java
/*
* Copyright © 2012 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;
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);
}
}