SurfaceView Game entwickeln?? Bester weg?

  • 4 Antworten
  • Letztes Antwortdatum
S

Shelly22

Fortgeschrittenes Mitglied
0
Hallo liebes Forum.

Freunde mich langsam mit SurfaceView an um ein Game zu
Programmieren.

Möchte erstmal wirklich klein anfangen.
Z.B ein kleines RPG Game in Zelda form.

Wie baue ich die Welt etc auf?
Reicht es wenn ich die Welt z.B in einem großen .png zeichne?
Dann mit Bitmap und Canvas aufs Bild bringe?

Und dann mit:
Code:
        float posXHouse = xHouseOne;
        float posYHouse = yHouseOne;
        float x1 = 490, x2 = 690, y1 = 300, y2 = 500;

        if ((posXHouse >= x1 && posXHouse <= x2) && (posYHouse >= y1 && posYHouse <= y2)) {

            if(xHouseOne == 500){
                xHouseOne = 490;
            } else if(yHouseOne == 300){
                yHouseOne = 290;
            } else if(xHouseOne == 690){
                xHouseOne = 700;
            } else if(yHouseOne == 500){
                yHouseOne = 510;
            }
        }
die Position feststelle und dann was passiert?
Z.B ist in dem Code die Position von dem ersten Haus
auf dem Bitmap Bild.
Laufe ich dagegen, laufe ich nicht weiter.
Das ich also nicht über das Haus(Bild) laufe.



LG
 
Bin kein Spieleentwickler, aber vlt. wäre sowas einfacher
Code:
boolean noWalk[resolutionX][resolutionY];

void addHouse(posX, posY, width, height){
 for(int i=posY; i<height+posY; i++){
  for(int j=posX; j<width+posX; j++){
   noWalk[j][i] = true;
 }
 }
}

dann brauchst du in deiner "walk funktion" nur noch prüfen ob die Fläche begehbar ist, oder nicht:
Code:
if(noWalk[newPosX][newPosY] != true) return true;
else return false;

und Häuser kannst du dann soviele hinzufügen wie du willst ohne für jedes eine Prüfung einzubauen
Code:
addHouse(490, 300, 200, 200);
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Shelly22
Hallo.

Danke dir sehr.
Das werde ich gleich mal Testen.


LG
 
Hallo Benny.

Danke dir sehr nochmal.
Doch leider verstehe ich komischerweise nichts von deine beispiel.

Was ist denn "bool"? Das kenne ich z.B garnicht.


LG
 
Das Beispiel hat auch eher C-Syntax, für Android verwendest du vermutlich Java, da kann es sein das du die Funktionsdeklaration/-aufrufe noch anpassen musst.

bool => boolean ist ein Datentyp der nur den Wert 1 oder 0 (true/false) annehmen kann, alternativ kannst du auch einfach byte, short oder integer verwenden. (true/false sollten dann durch 1/0 ersetzt werden).

short und integer benötigen allerdings mehr Arbeitsspeicher auf dem Gerät.

Da du in deinem Beispiel schon float für Ganzzahlen verwendest, wäre es ratsam wenn du dir ein paar Grundlagen zu Datentypen & Arrays durchliest. Das wird dir einiges an Zeit und Ärger ersparen ;-)

Datentypen:
Java ist auch eine Insel – 2.3 Datentypen

Arrays:
Galileo Computing :: Java ist auch eine Insel – 3.7 Arrays

(sollte so auch für Android Software gelten, bin kein Java Entwickler)
 
Zuletzt bearbeitet:

Ähnliche Themen

A
Antworten
4
Aufrufe
1.659
jogimuc
J
R
Antworten
9
Aufrufe
880
koje71
koje71
4
Antworten
0
Aufrufe
1.523
453202
4
Zurück
Oben Unten