Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Yuber

Seher

  • "Yuber" started this thread

Motto: Die Welt zu beherrschen.

  • Send private message

1

Saturday, July 30th 2011, 6:49pm

Zeit messen und Array Parameter

Hi!
1) Wie kann ich die Zeit messen um sie im Menü auszugeben?

2) Wie konnte ich jetzt nochmal eine ArrayList nach einen bestimmten Parameter ordnen?
Erstelle NPC

Java Source code

1
2
 Schleim = new NPC(sprite.npc[0].getSubImage(0, 0 * 64, 48, 64),"Xerg",10,10,1);
 Vaan = new NPC(sprite.npc[1].getSubImage(0, 0 * 64, 48, 64),"Vaan",5,13,1);

und füge sie hinzu

Java Source code

1
2
CharakterListe.add(Schleim);
CharakterListe.add(Vaan);
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

2

Saturday, July 30th 2011, 8:18pm

1.) Du kannst die Systemzeit nehmen (System.currentTimeMillis()) oder (sicherer) einen eigenen Counter basteln der jeden Update die vergangene Spielzeit draufaddiert (die bekommst du in Slick z.B. mit GameContainer#getDelta)

2.) Collections.sort sortiert den Array nach der Ordnung, die die compareTo Methode der Elemente vorgibt. Du kannst eine eigene compareTo Methode schreiben (die Elemente müssen dann Comparable implementieren). Du kannst Collections.sort aber als zweiten Parameter auch eine Instanz von Comparator mitgeben, die dann eine Methode compare implementieren muss. Die bekommt dann zwei Elemente x, y aus dem Array als Parameter und gibt -1, 0 oder 1 zurück (je nach dem ob gilt x < y, x = y oder x > y).

Findest du aber auch alles in der Java-API erklärt.
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Yuber

Seher

  • "Yuber" started this thread

Motto: Die Welt zu beherrschen.

  • Send private message

3

Monday, August 1st 2011, 11:07am

Quoted

1.) Du kannst die Systemzeit nehmen (System.currentTimeMillis()) oder (sicherer) einen eigenen Counter basteln der jeden Update die vergangene Spielzeit draufaddiert (die bekommst du in Slick z.B. mit GameContainer#getDelta)

In Ordnung. Jetzt muss ich nur wieder rausfinden wie man bei einer Zahl nur eine Ziffer anzeigt.
Bei C konnte man da irgentwas mit % machen. Ich schau da gleich mal bei Google.

Quoted


2.) Collections.sort sortiert den Array nach der Ordnung, die die compareTo Methode der Elemente vorgibt. Du kannst eine eigene compareTo Methode schreiben (die Elemente müssen dann Comparable implementieren). Du kannst Collections.sort aber als zweiten Parameter auch eine Instanz von Comparator mitgeben, die dann eine Methode compare implementieren muss. Die bekommt dann zwei Elemente x, y aus dem Array als Parameter und gibt -1, 0 oder 1 zurück (je nach dem ob gilt x < y, x = y oder x > y).

So aus dem Text bin ich leider nicht schlau geworden.
Habe aber zum Glück noch ne Seite gefunden mit der ich es dann geschafft habe.
Objekte sortieren

EDIT: Hoffentlich seht ihr den Edit...
Ich hab zwar jetzt alles nach Y geordnet. Allerdings gibt es Probleme beim Anzeigen.
Der Spieler flackert zwischen seiner Grafik und Schwarz hinundher. Ich denke weil er ja nicht immer gezeichnet wird sondern nur wenn die Abfrage stimmt.
Aber anders geht es doch nicht oder?
BITTE helft mir!

Java Source code

1
2
3
4
5
6
7
8
9
10
//So mach ich es bisher.
 for(int x=0;x<bank.ZFolge.length;x++)
          {
              if(!bank.ZFolge[x].getEvent().equals(bank.Spieler))
                 zeichneNPC(bank.ZFolge[x].getEvent(),g);
             else
                zeichneSpieler(g);
 
          }
//ZFolge füg ich solche Objekte zu: ZFolge(Das Event,PositionX,PositionY)

Hier das flackern:
Flackern was anders machen?
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

This post has been edited 1 times, last edit by "Yuber" (Aug 1st 2011, 11:07am) with the following reason: Nachtrag


4

Monday, August 1st 2011, 12:43pm

Du hast das mit der Z-Koordinate nicht verstanden oder? Mit der Z-Koordinate werden trotzdem alle Sprites gezeichnet (meißtens ebenfalls), du kannst nicht einfach sagen: wenn die Z-Koordinate einen bestimmten wert hat dann zeichne ich den Spieler nicht.

Das Ding legt nur die Zeichenreihenfolge fest (bei 2D Spielen) und nicht ob was gezeichnet werden soll oder nicht. Je nach Position deines Spielers solltest du diese so verändern, dass du die richtige Zeichenreihenfolge hast.

-Lone

Yuber

Seher

  • "Yuber" started this thread

Motto: Die Welt zu beherrschen.

  • Send private message

5

Monday, August 1st 2011, 12:45pm

Ja das meine ich ja. Ich habs nur falsch gemacht.
Kannst du mir nicht sagen wie man es richtig macht?
Ich habe jetzt also alle Z Positionen der NPCs und Spieler geordnet.
Und was mach ich damit nun?

Wenn ich es manuell abfrage geht es ja aber will nicht tausend If Abfragen machen müssen.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

6

Monday, August 1st 2011, 1:13pm

Ich weiss nicht wie du es programmiert hast, daher kann ich dir nur einen Ansatz geben wie man es machen könnte.

Wenn du vernünftig programmiert hast haben alle NPCs und der Spieler eine gemeinsame Oberklasse (nennen wir diese einfach mal Sprite). Danach machst du dir eine doppelt verkettete Liste oder nimmst eine fertige aus der Java API (ArrayList z.B.) wo du deine Sprites - nach der Z-Koordinate sortiert - organisierst. Bedenke, dass bei jeder Aktuallisierung der Z-Koordinate du die Liste neu sortieren musst.

Wenn du das hast musst du nur noch die Liste durchlaufen und die Sprites zeichnen lassen. Da sie nach der Z-Koordinate sortiert sind werden diese automatisch in der richtigen Reihenfolge gezeichnet und du musst dich nur noch um das Berechnen der Z-Koordinate kümmern damit die Liste immer die korrekte Reihenfolge hat.

Das ist eine der Möglichkeiten wie man es machen könnte (mMn auch die einfachste für den Einstieg, natürlich kann man hier auch eine eigene Liste schreiben die genau für die Aufgaben die man braucht ausgelegt ist).

-Lone

Yuber

Seher

  • "Yuber" started this thread

Motto: Die Welt zu beherrschen.

  • Send private message

7

Thursday, August 11th 2011, 10:46am

Der Thread kann geschlossen werden.
Ich habe in einem anderen Forum Hilfe gefunden :WinkeWinke:

Edit by Steve Dann verlinke es doch einfach, damit andere, die ein ähnliches Problem haben, auch gleich geholfen werden kann.
(Dann kannst du gerne den Edit hier, wieder auslöschen.)

Edit by Cloud In Ordnung.
Also Leute, falls ihr Hilfe für Java-Spiele-Programmierung braucht kann ich dieses Forum empfehlen:
Java-Gaming.org - home of the largest java game developer community
Das ist auch sehr gut:
Startseite - spieleprogrammierer.de
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

This post has been edited 3 times, last edit by "Yuber" (Aug 11th 2011, 10:46am)


Social bookmarks