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

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

1

03.11.2009, 18:10

Array einfach befüllen

hi all,
ja ich hab ne frage bezüglich Arrays.
Und zwar ich hab ein Vertex struct das mehrere variablen enthält und wenn ich ein Vertex in einer klasse als membervariable intialisier( schreibt man das so!?) und das dann definieren will hab ich es so versucht:

C-/C++-Quelltext

1
2
3
4
5
Player1[] = {
            {-1.0f,-1.0f, 5.0f ,0xffffffff,1.0f,1.0f},
            { 0.0f,-1.0f, 5.0f,0xffffffff,0.5f,0.0f},
            {-1.0f,-6.0f, 5.0f,0xffffffff,0.0f,1.0f},
            { 0.0f,-6.0f, 5.0f, 0xffffffff,1.0f,1.0f}};


naja das funktioniert nicht, aber ich möchte nicht jede einzelne Position und farbe für jeden einzelnen Vertex definieren wie z.B.:

C-/C++-Quelltext

1
2
3
Player[0].fX = -1;
Player[0].fX = 0;
...


geht das auch anders wie ich ein array schnell befüllen kann wie z.B. im oberen ( ganz oben ) Bsp. oder hab ich es einfach nur falsch geschrieben? :?

Thx im voraus!
New Project: Operation CityRacer

Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

2

03.11.2009, 18:55

Wie sieht denn das struct aus? Hast du einen passenden Konstruktor?

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

3

03.11.2009, 18:58

Re: Array einfach befüllen

Zitat von »"Nexxtron"«


C-/C++-Quelltext

1
2
3
4
5
Player1[] = {
            {-1.0f,-1.0f, 5.0f ,0xffffffff,1.0f,1.0f},
            { 0.0f,-1.0f, 5.0f,0xffffffff,0.5f,0.0f},
            {-1.0f,-6.0f, 5.0f,0xffffffff,0.0f,1.0f},
            { 0.0f,-6.0f, 5.0f, 0xffffffff,1.0f,1.0f}};




Soweit ich weiß brauchst du nur 2 klammern... vorne und hinten... der rest einfach mit kommas trennen.

C-/C++-Quelltext

1
2
3
4
5
6
7
Player1[] =
    {
            -1.0f,-1.0f, 5.0f ,0xffffffff,1.0f,1.0f,
             0.0f,-1.0f, 5.0f,0xffffffff,0.5f,0.0f,
            -1.0f,-6.0f, 5.0f,0xffffffff,0.0f,1.0f,
             0.0f,-6.0f, 5.0f, 0xffffffff,1.0f,1.0f
    };

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

4

03.11.2009, 19:05

achso Konstruktor kann ich den auch bei structs machen?

jo ehmm....

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
typedef struct SVertex
{ 
     float fX;
     float fY;
     float fZ;
     Dword Color;
     float fU;
     float fV
} D3DVERTEX;
New Project: Operation CityRacer

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

03.11.2009, 19:16

Mal abgesehen von den paar Syntaxfehlern, sollte die Version von Databyte funktionieren.

Ob du für struct einen Konstruktor benutzen kannst, hängt davon ob, ob du C, oder C++ programmierst. Im Falle von C nicht, aber wenn du C++ benutzt, dann ist struct eigentlich das gleiche, wie class. Der einzige Unterschied liegt darin, dass bei struct die Member Standardmässig public sind, wogegen sie bei class private sind.

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

6

03.11.2009, 20:04

ah ok thx
Edit: also kann ich genaus so gut ne init funktion reinmachen?
New Project: Operation CityRacer

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

03.11.2009, 20:32

Ich würds im Konstruktor übergeben.

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

8

03.11.2009, 20:49

naja aber wenn ich es als membervariable (deklariere oder initialisiere ) wird ja der konstruktor schon beim erstellen der klasse aufgerufen oder und ich kann ja dann keine variablen übergeben oder geht das auch anders?
New Project: Operation CityRacer

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

03.11.2009, 21:15

du kannst einzelne konstruktoren in der initialiserliste des konstruktors der übergeordneten klasse aufrufen. das funktioniert allerdings nicht mit arrays.

wieso überhaupt struct? da hast du doch kein vorteil.(oder?)

ich würd ne klasse draus machen, konstruktor schreiben und zeiger benutzen. aber ich bin nurn anfänger^^

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

04.11.2009, 11:22

Zitat von »"NachoMan"«

wieso überhaupt struct? da hast du doch kein vorteil.(oder?)


Wie schon von drakon gesagt sind struct und class in C++ gleichwertig. Einziger Unterschied ist das bei struct per default alles public und bei class alles private is. Es hat also keine wirklichen Vor- oder Nachteile (außer dass man sich einmal public/private schreiben spart) sondern ist mehr Geschmackssache.

Werbeanzeige