Witajcie,
Staram się stworzyć prostą aplikację, która umożliwi mi wysłanie pewnych wartości do bazy.
Jako, że z javą nie miałem do czynienia to nie wielę mogę zdziałać. Na chwilę obecną udało mi się skleić to ze znalezionych kodów.
/*
* clsCanvas.java
*/
package MyGame;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
public class clsCanvas extends GameCanvas implements Runnable {
private boolean isRunning = true;
private Graphics g;
private midMain fParent;
private Sprite y, x, prog; // obiekty typu sprite do zarzadzania naszymi "bohaterami" :D:D
private Image yImg, xImg, progImg; // obrazki z kwadratami
private LayerManager lm; // do zarz?dzania rysowanymi na ekranie warstwami
private int yX, yY; // aktualna pozycja gracza
private int xX, xY; // aktualna pozycja przeciwnika
private int progX, progY;
/** Creates a new instance of clsCanvas */
public clsCanvas(midMain m) throws IOException {
super(true);
fParent = m;
yImg = Image.createImage("/a.png"); // przypisujemy narysowany obrazek do zmiennej
xImg = Image.createImage("/b.png"); // to samo co wyzej
progImg = Image.createImage("/prog.png");
y = new Sprite(yImg, yImg.getWidth(), yImg.getHeight()); // tworzymy obiekt typu sprite przypisujac mu narysowana graficzke jako pierwszy parametr
x = new Sprite(xImg, xImg.getWidth(), xImg.getHeight()); // drugi oraz trzeci parametr to jak sie mozna domyslec szerokosc i wysokosc sprite'a :P
prog = new Sprite(progImg, progImg.getWidth(),progImg.getHeight());
yX = (this.getWidth() / 2) - (y.getWidth() / 2); // ustawmy naszego gracza na srodku ekranu
yY = (this.getHeight() - (y.getHeight() / 2));
xX = ((this.getWidth() / 2)- (y.getWidth() / 2)); // a przeciwnika w gornym lewym rogu
xY = 3;
progX = 0;
progY = 0;
lm = new LayerManager(); // utworzenie obiektu zarzadzajacego warstwami
lm.append(y); // dodajemy nowe warstwy
lm.append(x);
lm.append(prog);
this.setFullScreenMode(true); // wyswietlenie gry na pelnym ekranie telefonu
}
public void start(){
Thread runner = new Thread(this);
runner.start();
}
public void run() {
int iKey = 0;
g = getGraphics();
while(isRunning){
// iKey = getKeyStates();
//if ((iKey & GameCanvas.FIRE_PRESSED) != 0){
// isRunning = false;
// }
//set drawing color to black
g.setColor(0x000000);
//fill the whole screen
g.fillRect(0, 0, getWidth(), getHeight());
// set drawing color to white
int klawisz = this.getKeyStates(); // sprawdzamy czy nacisnieto ktorys z przyciskow
if ((klawisz & LEFT_PRESSED ) != 0){ // nacisnieto klawisz w lewo
xX-=2; // skoro gracz chce isc w lewo to musimy zmodyfikowac jego pozycje poprzez zmniejszenie wartosci X jego pozycji
}
else if ((klawisz & RIGHT_PRESSED ) != 0){ // itd.
xX+=2;
}
else if ((klawisz & UP_PRESSED) != 0){ // itp.
yY-=2;
}
else if ((klawisz & DOWN_PRESSED) != 0){ /// ... :P
yY+=2;
}
this.y.setPosition(yX, yY); // ustawienie gracza w pozycji pX, pY
this.x.setPosition(xX, xY); // ustawienie przeciwnika w pozycji eX, eY
this.prog.setPosition(progX, progX);
this.g.setColor(0xFFFFFF);
this.g.fillRect(0, 0, getWidth(), getHeight());
this.lm.paint(g, 0, 0); // przekazanie wszystkich warstw do pamieci
flushGraphics();
try{
Thread.sleep(10);
} catch (Exception ex){
}
}
g = null;
fParent.destroyApp(false);
fParent = null;
}
}
Teraz w miejsca if'ów ( if ((klawisz & LEFT_PRESSED ) ) muszę wkleić - i tu pojawia się jedno z dwóch:
a) połączenie z bazą MySQL, a dokładniej dodanie do niej danych co wydaje mi się lepszym pomysłem bo liczy się tu szybkość, ponieważ aplikacja będzie miała czymś sterować. A do tego chyba zużyje mniej transferu
b)otwarcie strony np: yyy.pl/?up="wartość", a resztę już wykona skrypt po stronie serwera czyli doda mi wpis do bazy - Łatwiejsze do zrobienia jednak nawet tego nie udało mi się zrobić, bo korzystając z Connector.open nie zauważyłem aby w logach apache coś się pojawiało. Jednak wolałbym zrealizować podpunkt "a".
Z góry dzięki za odpowiedzi i proszę tłumaczyć jak zupełnie zielonemu ;)