Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

1

27.10.2015, 12:06

Ich brauche eine ganz einfache Erklärung für Java ArrayListen<>

Guten Tag,
Ich programmiere gerade mit Java und versuche ganz genau zu verstehen was ArraListen sind und was ich alles mit denen machen kann.
Und da hätte ich noch eine Frage, was sind ArrayList<Rectangle>(GUI-Programmierung) und wie kann ich die nutzen.
Ich lerne leider nicht so schnell wie andere und das gleiche geht mir mit meinem Verständnis, ich hoffe ihr könnt es ganz einfach Erklären.
Danke :D

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

27.10.2015, 13:37

Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

27.10.2015, 13:49

Ein Vorteil ist dass du die sogenannte for-each schleife benutzen kannst
Das geht aber nicht nur mit ArrayList, sondern mit jeder Collection. Ist also gar kein Vorteil der ArrayList.

Somit brauchst du nciht wie bei Listen einen Iterator benutzen.
Braucht man auch bei List nicht. Der geübte Java-Entwickler wird übrigens *immer* mit dem List-Interface arbeiten (außer er benutzt das Collection<>-Interface und ist noch abstrakter unterwegs) und nur bei der Erstellung einer neuen Liste den konkreten Typ angeben:

Java-Quelltext

1
2
3
4
5
6
Collection<Integer> getMyNumbers()
{
    List<Integer> fancy = new ArrayList<Integer>();
    fancy.add(Integer.valueOf(5));
    return fancy;
}
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

4

27.10.2015, 17:21

@Jailsoft Vielen dank für die schnelle Antwort.
Jetzt verstehe ich es so langsam, ich glaube das volle Veständnis kommt erst durch Übung und mit der Zeit.

@Bluekobolt Mit deinen Links konnte ich echt nichts Anfangen, da steht alles auf Englisch und ist unübersichtlich, hat auch wenig mit meiner Frage zu tun, die ich pesönlich beantwortet haben wollte sonst hätte ich einfach selber auf Google suchen können.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

27.10.2015, 17:26

Nun, Englisch ist eine Grundvoraussetzung für Programmierung. Die Texte dort sind keineswegs unübersichtlich, weil die ersten paar Absätze klar strukturiert und ausführlich sind. Dass Du stattdessen persönlich formulierte Falschaussagen bevorzugst, finde ich tragisch, aber da kann man dann wohl nichts machen.

Meiner Meinung nach solltest Du dringend an Englischkenntnissen arbeiten, ohne die kommt ein Programmierer nicht weit. Sich Dokumentation durchzulesen und sie zu verstehen, ist eine der vielen Hauptaufgaben eines guten Entwicklers. Code schreiben ist nur eine davon.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

27.10.2015, 17:29

Ich tue mal einfach so als ob ich das nicht gehört habe...
Offenbar tust Du nicht so, sonst hättest Du nicht geantwortet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

7

27.10.2015, 20:53

Ich habe da noch eine Frage, möchte aber ungern noch ein neues Thema erstellen, weil es sonst zu viele werden.
Ich habe mir einen FlappyBird Code angeschaut und verstehe nicht wozu man den Operator % in diesem Code gebraucht

Quellcode

1
public int ticks, yMotion;


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
    public void actionPerformed(ActionEvent e){
        ticks++;
        
        if(started){
        
            if (ticks %2 == 0 && yMotion < 100){
                yMotion += 2;
            }
        
        bird.y += yMotion;
        
    }
        renderer.repaint();
    }

Es sind natürlich noch mehr Zeilen Code vorhanden, aber dieser Code sorgt dafür das ein Rectangle runterfällt, wozu aber das % ?
Wenn %2 und yMotion... dann soll das Recteck sich um 2px nach unten bewegen ?
Hoffe ihr versteht das, falls nicht ist es auch egal, ihr müsst nicht Antworten :)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

27.10.2015, 20:56

x % 2 == 0 berechnet effektiv: "Wenn x gerade ist". % aka modulo berechnet den Rest einer Division. Also 13 % 5 ergibt 3, da 10/5=2, Rest 3.
Das yMotion ist eine pseudo-Gravitation und damit der Vogel nicht zu schnell wird, wird das eben begrenzt auf eine maximale Fallgeschwindigkeit von 100. Denn geändert wird nicht die Position des Rects um 2, sondern die Geschwindigkeit des Rects um 2.
Kein besonders schöner Code, aber unter gewissen Umständen (60 FPS Android) funktional.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

27.10.2015, 22:18

[Anonymer Benutzer]Soft du solltest dringend lernen mit Kritik umgehen zu können. Das was BlueCobold an deiner Antwort auszusetzen hatte stimmt nun mal. Es war fehlerhaft. Und von daher ist es schlecht dass der Threadersteller lieber mit einer falschen als mit einer korrekten Antwort zufrieden ist.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

28.10.2015, 06:38

edit: @BC yMotion wird hinzuaddiert. Die "Beschleunigung" soll so nur gecappt werden auf 100 oder 101 je nachdem
Nein, die Beschleunigung ist die 2. Gecapped wird die Geschwindigkeit.

PS:
Jede List erlaubt einen Random Access. Nur sind die Zugriffszeiten je nach Listentyp unterschiedlich. Du wirst nämlich feststellen, dass auch List<> eine get(atIndex) Methode hat. Bei ArrayList ist es O(1), bei LinkedList eben O(n). Ich will Dich wirklich nicht beleidigen, aber Du drückst Dich erstens sehr schlecht aus und weißt zweitens scheinbar Dinge nur sehr ungenau oder erinnerst Dich falsch. Bitte konsolidiere doch solche Aussagen, bevor Du sie tätigst.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (28.10.2015, 06:45)


Werbeanzeige