hab mal ein paar Struktur Tipps für zukünftige Projekte:
1.) Klassen wie Player, MapObject und ähnliches sind im normalfall reine Informations Klassen, dh. sie haben hauptsächlich Variablen mit gettern und settern und fast nie konkrete Methoden (wie Kollisionkontrolle oder ähnliches)
2.) man schreibt statdessen eine Physik (oder eine verwaltung der Objekte oder ähnliches, welche einerseits die Map und andererer Seits alle Objekte die auf der Map laufen besitzt)
2.5.) die Sachen wie keyPressed / keyReleased sollten auch nicht in Player stehen, sondern entweder in der Klasse darüber oder in der Physik oder so
3.) wenn der Spieler als Mittelpunkt des Spiels gesehen wird (wenn man also nur einen Spieler hat, der besonders ist) wird dieser meistens als Sonderwurst behandelt (also es gibt z.B. eine Liste mit mapObjects und eine Instanz von Spieler)
zu deinem Problem mit der bewegten Map:
du willst die Map abhängig von der Spieler Position zeichen, dh.
1.) der Spieler wird immer genau in der Mitte des Bildes gezeichnet
2.) die Map wird abhängig von x und y gezeichnet
( 3.) falls du willst kannst du später noch einbauen, dass wenn man sich dem Rand nähert, die Position des Spielers verändert wird anstelle der Map (man also am Rand der Wand entgegen läuft) )
[EDIT]Ich würde die Position der Map nicht als eigene Variable machen, denn:
je mehr Variablen man hat, die aufeinander abgestimmt sein müssen, um so Fehler anfälliger wird das ganze
[/EDIT]
1.) Klassen wie Player, MapObject und ähnliches sind im normalfall reine Informations Klassen, dh. sie haben hauptsächlich Variablen mit gettern und settern und fast nie konkrete Methoden (wie Kollisionkontrolle oder ähnliches)
2.) man schreibt statdessen eine Physik (oder eine verwaltung der Objekte oder ähnliches, welche einerseits die Map und andererer Seits alle Objekte die auf der Map laufen besitzt)
2.5.) die Sachen wie keyPressed / keyReleased sollten auch nicht in Player stehen, sondern entweder in der Klasse darüber oder in der Physik oder so
3.) wenn der Spieler als Mittelpunkt des Spiels gesehen wird (wenn man also nur einen Spieler hat, der besonders ist) wird dieser meistens als Sonderwurst behandelt (also es gibt z.B. eine Liste mit mapObjects und eine Instanz von Spieler)
zu deinem Problem mit der bewegten Map:
du willst die Map abhängig von der Spieler Position zeichen, dh.
1.) der Spieler wird immer genau in der Mitte des Bildes gezeichnet
2.) die Map wird abhängig von x und y gezeichnet
( 3.) falls du willst kannst du später noch einbauen, dass wenn man sich dem Rand nähert, die Position des Spielers verändert wird anstelle der Map (man also am Rand der Wand entgegen läuft) )
Java:
//draw Player
g.setColor(Color.RED);
g.fillRect( 5*tilesize, 5*tilesize, width, height);
//draw map
for (int row = 0; row < map.length; row++) {
for (int col = 0; col < map[row].length; col++) {
if(map[row][col] == 1) {
g.setColor(Color.BLACK);
}
if(map[row][col] == 0) {
g.setColor(Color.WHITE);
}
g.fillRect( col * tileSize - x, row * tileSize - y, tileSize, tileSize);
}
}
[EDIT]Ich würde die Position der Map nicht als eigene Variable machen, denn:
je mehr Variablen man hat, die aufeinander abgestimmt sein müssen, um so Fehler anfälliger wird das ganze
also ich hab Programmierung auch mit diesen Tutorials gelernt (nie in ein Buch geschaut und bis auf mein Info Studium inzwischen (wo man leider nichts wirklich lernt)) komplett mit dem Internet gelerntMal abgesehen davon gibt es so dermaßen unvollständige und fehlerbehaftete, tutorials im Netz das es mir mittlerweile kalt den Rücken runter läuft..... hoffe mein Buch ist bald da
[/EDIT]
Zuletzt bearbeitet: