Ball.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 javax.microedition.lcdui.game.Sprite;
public class Ball
extends Sprite {
private static final int PADDING = 6;
private int velocityX;
private int velocityY;
public Ball(Resources r) {
super(r.ball);
setCollisionRectangle(r);
defineReferencePixel((int) (getWidth() * 0.5 + 0.5), (int) (getHeight() * 0.5 + 0.5));
}
private void setCollisionRectangle(Resources r) {
int width = this.getWidth();
int padding = r.scale(PADDING);
defineCollisionRectangle(padding, padding, width - padding, width - padding);
}
public void move() {
move(getVelocityX(), getVelocityY());
}
public void bounceVertically() {
velocityY *= -1;
}
public void bounceHorizontally() {
velocityX *= -1;
}
public void bounceLeft() {
if (velocityX > 0) {
bounceHorizontally();
}
}
public void bounceRight() {
if (velocityX < 0) {
bounceHorizontally();
}
}
public void bounceUp() {
if (velocityY > 0) {
bounceVertically();
}
}
public void bounceDown() {
if (velocityY < 0) {
bounceVertically();
}
}
public int getVelocityX() {
return velocityX;
}
public int getVelocityY() {
return velocityY;
}
public void setVelocityX(int velocity) {
this.velocityX = velocity;
}
public void setVelocityY(int velocity) {
this.velocityY = velocity;
}
public void changeVelocityX(int amount) {
velocityX += amount;
}
}