Mehrer Bilpositionen in einem Aray!?



  • Guten Abend und Hallo erstmal 🙂

    Nun zur Frage:

    Ich habe z.B. 5 Bilder mit XY Koordinaten. Eine Renderfunktion habe ich bereits. Nun nöchte ich alle Positionen irgendwie abrufen können in eine Schleife. Rendern tue ich in eine Schleife so:

    renderpics(pic_nrback, posx, posy, 0, 0, h, w);

    Nun so kenne ich es aus VB zumindest das wenn ich posx[i] ein array abrufen kann. wie speichere ich das nun in C++ in ein Array und wie lese ich es aus!?

    MERCI 😃



  • Und Du bist nicht auf die Idee gekommen, einfach mal nach C++ Arrays zu Googlen ?!



  • Das war das Erste was ich tat aber dennoch hänge ich:

    Ich habe z.B. das Array:

    int lvl2[3][3] = { { 100, 150, 200 }, { 130, 250, 350 } };

    Also X & Y Koordinaten. Jetzt zurück zu meiner Renderfunktion:

    renderpics(pic_nrback, x, y, 0, 0, h, w);

    Wie binde ich jetzt für X z.B. die 100 und für Y die 130 ein? lvl2[0] klappt z.B. nicht. Weil es ja ein mehrdimensionales Array ist.



  • x= lvl2[0][index]
    y= lvl2[1][index]
    

    Mach doch 'ne Struktur draus, dann hast Du nicht so'n Gefuchtel:

    struct Coord {
      int x,y;
    };
    
    Coord pos[3]= {
      100,130, 
      150,250, 
      200,350 };
    
    render(pos[0].x, pos[0].y);
    


  • OK erstmal Danke! Ist sicher besser...

    Nun folgt ein weiteres Problem:

    Nehmen wir an ich habe 2 Array mit XY Koos:

    Coords LVL1[2] = {
           50,50,
           220,150
           }; 
    Coords LVL2[3] = {
           50,100,
           150,100,
           260,100
           };
    

    Jetzt bin ich in LVL1 und rendere:

    renderpics(pic_nrback, LVL1[posi].x, LVL1[posi].y, 0, 0, w, h);
    

    Springe ich nun in LVL2 müsste ich die komplette Zeile wiederholen was mit der Anzahl an Array denke ich mit der Zeit unübersichtlich wird. Also wäre ein:

    LVL(curlvl)[posi].x doch empfehlenswert. WENN das möglich ist!? Für curlvl ersetzt man halt das aktuelle level. Machbar?



  • Ja, einfach mit der Struktur ein mehrdimensionales Array erzeugen.

    Coord pos[3][3]= {
      {100,130, 
      150,250, 
      200,350},
    
      {100,130, 
      150,250, 
      200,350},
    
      {100,130, 
      150,250, 
      200,350}
     };
    


  • Vielel Danke! Has mir sehr geholfen! 🙂


Anmelden zum Antworten