Olá galera,
Estou tentando desenvolver um jogo para celular, coisa bem básica, mas já me deparei com o primeiro problema. Eu coloquei uma imagem como fundo do Canvas através do graphics.drawImage()… até então tudo bem, ele está desenhando a imagem na tela, agora estou tentando colocar informações para sobrepor essa imagem, como por exemplo, eu quero que o nome do jogador apareça no canto esquerdo superior da tela.
Segue o código no qual estou tentando fazer isso:
package jforca.view;
import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.CustomItem;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import jforca.bean.PlayerBean;
public class GameScreenCanvas extends Canvas {
private Image erro1, erro2, erro3, erro4, erro5, erro6;
private PlayerBean player;
private Form form;
private Display display;
public GameScreenCanvas(MainScreenMidlet mainScreen, PlayerBean playerBean) {
if(loadImages())
{
player = playerBean;
display = Display.getDisplay(mainScreen);
form = new Form("jForca");
}
}
public GameScreenCanvas(){
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(form);
}
protected void paint(Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(erro1, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
form.append("Jogador: " + player.getName());
g.setColor(0,0,255);
g.drawString("Jogador: " + player.getName(), getWidth(), getHeight(), Graphics.TOP | Graphics.LEFT);
}
private boolean loadImages()
{
boolean isLoaded = false;
try {
erro1 = Image.createImage("/erro-1-tst.png");
erro2 = Image.createImage("/erro-2.jpg");
erro3 = Image.createImage("/erro-3.jpg");
erro4 = Image.createImage("/erro-4.jpg");
erro5 = Image.createImage("/erro-5.jpg");
erro6 = Image.createImage("/erro-6.jpg");
isLoaded = true;
} catch (IOException e) {
isLoaded = false;
e.printStackTrace();
}
return isLoaded;
}
}
Agora como eu faço para colocar as informações que eu quiser na frente da imagem?