lalalalaa
Ok, hmm......keine Ahnung wie's geht
Wollt ich zwar nicht wegen den möglichen Reaktionen (auch berechtigte zum Teil denk ich mal) drauf aber ich sag einfach mal was ich vorhabe:
Also ich will kein Chat oder sonnstwas programmieren sondern, jetzt kommts, hab ich mir mal vorgenommen ein MMORPG zu programmieren. Jaja ich weis: Ich schaff das nicht alleine, ich kann nicht, weil ich gerade erst mit Java anfange, ich komm nicht weit etc. und was es da alles noch so für Einwände gibt
Aber ich habe mir viele Gedanken über die Umsetzung gemacht und will jetzt einfach mal aus der "Wuschtraum"-Phase rauskommen und einfach mal probieren wie weit ich komme. Ich will's in der Ansicht von oben machen da eine 3D-Engine denk ich mal ganz schön viel schwiriger sein würde.
Als erstes Ziel habe ich mir vorgenommen zu schaffen das ich rumlaufen kann, mich drehen kann, etwas sagen kann etc. Da da das Kooridinaten-System eine wichtige Rolle spiel wollte ich gleich zu Anfang erstmal die Arbeitsfläche von der Größe her festlegen, auf 800x600, und nicht dann in der HTML das skalieren was denk ich mal Probleme bringen könnte.
Eine einfache Bewegung ist schon möglich aber drehen, skalieren etc. geht noch nicht und es nagt ganzschön an der Performence, kann mir zufällig jemand ne Tip geben?
Wenn ich es nicht schaffe, naja dann hab ich mir halt fürn Anfang zu viel vorgenommen, aber aus Fehlern lernt man ja bekanntlich
Zuerst wollt ich's in Flash machen weil da das Arbeiten mit Objekten um Tonnen einfacher ist. Aber das macht Probleme, weil die Datenbank-Anbindung dort recht doof zu realisieren ist...
Der derzeitige Code:
Code:
package mmorpg;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
public class engine extends Applet {
//Variablen für Datenbank
private int self_x = 100;
private int self_y = 100;
private int self_width = 50;
private int self_height = 50;
private int self_a = 90;
private int self_say;
//Datenbank-Aktionen
//DoubleBuffer
private Image dbImage;
private Graphics dbg;
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
// Bewegung
public boolean keyDown (Event e, int key)
{
if (key == Event.UP){
self_y -= 1;
}
if (key == Event.DOWN){
self_y += 1;
}
if (key == Event.LEFT){
self_x -= 1;
}
if (key == Event.RIGHT){
self_x += 1;
}
return true;
}
//Game
Image player_img;
public void init(){
player_img = getImage (getCodeBase (), "mmorpg/images/player.gif");
}
public void paint(Graphics g){
setBackground (Color.black);
g.drawImage(player_img, self_x, self_y, this);
repaint();
}
}