Sunday, October 7, 2007

Week 3 Assignments

Animation


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class newCanvas extends MIDlet {

private boolean boolMotion=true;
private int iX=10,iY=60;

Display mDisplay;

public void destroyApp(boolean unconditional){}

public void pauseApp() {}

public void startApp() {
mDisplay = Display.getDisplay(this);
final MyCanvas can = new MyCanvas();
mDisplay.setCurrent(can);
}

}



import java.util.Random;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class MyCanvas extends Canvas implements Runnable {
int count, counter=0;
int h, w;
private Random rand;

//constructor - initialize variables
public MyCanvas() {
//get the height of the canvas
h = getHeight();
w = getWidth();

//set text colour to white
Thread th=new Thread(this);
th.start();
}

//drawing on the canvas
public void paint(Graphics g) {
//paint the background
g.setColor(0,0,0);
g.fillRoundRect(0, 0, w, h, 0, 0);

//paint the block
g.setColor(43,128,255);
g.fillRoundRect(0,count,40,40,40,40);
g.setColor(207,128,255);
g.fillRoundRect(count,0,40,40,40,40);
g.setColor(43,128,255);
g.fillRoundRect(190,count,40,40,40,40);
g.setColor(207,128,255);
g.fillRoundRect(count,190,40,40,40,40);
}

//the main loop
public void run() {
while(true) {
count++;
// my bootleg delay
while(counter < 1000000){
counter++;
}
repaint();
count %= h;
}
}
}


Form


import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;

public class CanvasMenu extends MIDlet implements CommandListener {

// The MIDlet's Display object
private Display display;

// Flag indicating first call of startApp
protected boolean started;

// Our Exit command
private Command exitCommand;

protected void startApp() {

//for debugging
System.out.println("I'm starting!!! - " + started);

if (!started) {
display = Display.getDisplay(this);

Canvas canvas = new KeyFinderCanvas();

exitCommand = new Command("Exit", Command.EXIT, 0);
canvas.addCommand(exitCommand);
canvas.setCommandListener(this);
display.setCurrent(canvas);
started = true;
System.out.println("Application Started! Yay! - " + started);
}
}

protected void pauseApp() {
}

protected void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
// Exit. No need to call destroyApp
// because it is empty.
notifyDestroyed();
}
}
}



//KeyFinderCanvas is a separate canvas which displays keys and codes
class KeyFinderCanvas extends Canvas {

static int[] keyCodes = {KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9};

int lastKeyCode = 0;

int lastX;

int lastY;

int background = 0x000000;
int keyColor = 0xffffff;

int width = getWidth();
int height = getHeight();


protected void keyPressed(int keyCode) {
lastKeyCode = keyCode;
repaint();
}

protected void keyRepeated(int keyCode) {
lastKeyCode = keyCode;
repaint();
}

protected void keyReleased(int keyCode) {
lastKeyCode = 0;
// repaint();
}


protected void paint(Graphics g) {

//g.setColor(0xAEB5CE);
g.setColor(background, 120, 240);
//this is not smart, instead of doing this - what would you do?
// I would call "get width" and "get height" once, not on each paint
g.fillRect(0, 0, width, height);

g.setColor(0xffffff);
Font font = g.getFont();
font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
g.setFont(font);
g.drawString("1", width/3-10, height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("2", width/3+width/3-10, height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("3", width-10, height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("4", width/3-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("5", width/3+width/3-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("6", width-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
g.drawString("7", width/3-10, height-20, Graphics.TOP | Graphics.LEFT);
g.drawString("8", width/3+width/3-10, height-20, Graphics.TOP | Graphics.LEFT);
g.drawString("9", width-10, height-20, Graphics.TOP | Graphics.LEFT);


if (lastKeyCode == 0) {
g.setColor(background, 120, 240);
}

if (lastKeyCode != 0) {
for (int i = 0; i if (lastKeyCode == keyCodes[i]) {
break;
}
}


// PRESS 1
if (lastKeyCode == KEY_NUM1){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(0, 0, width/3, height/3);
g.setColor(0xffffff);
g.drawString("1", width/3-10, height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 2
if (lastKeyCode == KEY_NUM2){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3, 0, width/3, height/3);
g.setColor(0xffffff);
g.drawString("2", width/3+width/3-10, height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 3
if (lastKeyCode == KEY_NUM3){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3+width/3, 0, width/3, height/3);
g.setColor(0xffffff);
g.drawString("3", width-10, height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 4
if (lastKeyCode == KEY_NUM4){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(0, height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("4", width/3-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 5
if (lastKeyCode == KEY_NUM5){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3, height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("5", width/3+width/3-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 6
if (lastKeyCode == KEY_NUM6){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3+width/3, height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("6", width-10, height/3+height/3-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 7
if (lastKeyCode == KEY_NUM7){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(0, height/3+height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("7", width/3-10, height-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 8
if (lastKeyCode == KEY_NUM8){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3, height/3+height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("8", width/3+width/3-10, height-20, Graphics.TOP | Graphics.LEFT);
}

// PRESS 9
if (lastKeyCode == KEY_NUM9){
keyColor = keyColor * -25;
if (keyColor <= 0)
{
keyColor=keyColor * -1 + 100;
}
g.setColor(keyColor);
g.fillRect(width/3+width/3, height/3+height/3, width/3, height/3);
g.setColor(0xffffff);
g.drawString("9", width-10, height-20, Graphics.TOP | Graphics.LEFT);
}
}
}
}

No comments: