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

Der Pate

Frischling

  • »Der Pate« ist der Autor dieses Themas

Beiträge: 20

Wohnort: Zwischen Venus und Mars

  • Private Nachricht senden

11

15.08.2006, 22:07

axo ich meine keine system ressorcen

meine karte besteht aus terrain felder
wasser, weideland, wüeste, berg...
auf diesem terrain kann es ressorcen geben
holz, stein, gold, mamor...

guten leitwert flo

Anonymous

unregistriert

12

15.08.2006, 22:15

Was haben Resourcen mit dem Terrain zu tun?! Ihrgendwie gar nix. Das ist Objekte die nicht an das Terrain gebunden sind.

Der Pate

Frischling

  • »Der Pate« ist der Autor dieses Themas

Beiträge: 20

Wohnort: Zwischen Venus und Mars

  • Private Nachricht senden

13

15.08.2006, 22:17

naja ich speichere doch die karte im array ab

also wo und was für ein terrain. nun muss ich doch noch abfragen ob auf der pos xy auch eine ressorce verfügbar ist

guten leitwert flo

Anonymous

unregistriert

14

15.08.2006, 22:20

Du Speicherst die KARTE ab, aber nicht die Objekte die darauf sind, die speicherst du seperat ab, da diese mit der Karte nichts am Hut haben. Ob jetzt ein Erz auf einem Tile für einen Baum steht oder mitten in einem Fluss oder einer Straße hat mit der Karte doch nichts am Hut.

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

16.08.2006, 11:12

nix da, wenn es sich um wegtragbare / einsammelbare Ressourcen handelt, wie z.B. ein Stück Holz oder ein Haufen Steine, dann würde sich eine Liste anbieten (die mit der Tiles der Karte nichts zu tun hat). Aber ich denke, hier ist eher ein Ressource-Vorkommen gemeint (wie z.B. Gold oder Zucker bei Civilization), was also schon an die Landschaft gebunden ist. Insofern finde ich es nicht verkehrt, Ressourcenvorkommen tile-weise zu speichern.

Der Pate, wenn du die Ressourcen mit der Karte verbinden willst, kannst du z.B. pro Tile eine Bitmaske speichern, die angibt, welche Ressourcen auf diesem Tile verfügbar sind, oder du speicherst eine einzelne ID für etwaige Ressource, die auf diesem Tile verfügbar ist. Das sind zwei sehr einfache Möglichkeiten, es gibt aber auch andere. Sollte nicht so schwer sein?
Kommen Sie nie mit einem Schwert zu einer Schießerei.

Der Pate

Frischling

  • »Der Pate« ist der Autor dieses Themas

Beiträge: 20

Wohnort: Zwischen Venus und Mars

  • Private Nachricht senden

16

25.09.2006, 17:49

hallo

so habe die liste fertig und versuche es jetzt aber trotzdem mit einem array

habe ein struct
mit

struct TEigenschaften
{
int Kartenteil;
int Ressorcen;
};

class oberkarte
{
public:
TEigenschaften KartenArray[100][100];
...
};


ich speichere werte im array so:

KartenArray[1][1].Kartenteil = 1;

und beim ausführen kriege ich an dieser stelle eine meldung wegen zugriffsverletzung

wo muss ich die intiallisierung des structs durchführen, und wie darf ins array schreiben.

euer pate

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

17

25.09.2006, 18:14

Das sieht grad ein bisschen so aus, als ob du noch nicht so 100% mit Klassen vertraut bist.

KartenArray kannst du im Konstruktor von oberkarte initialisieren oder du definierst einen eigenen Konstruktor für dein struct - da kannst die Werte auch Initialisieren.

Der Pate

Frischling

  • »Der Pate« ist der Autor dieses Themas

Beiträge: 20

Wohnort: Zwischen Venus und Mars

  • Private Nachricht senden

18

25.09.2006, 19:27

hmm, also mit klassen kenne ich mich eigendlich aus, ist zwar etwas her aber das kommt. mache trotzdem gerne blöde fehler :(
ich habe nur einige kleinigkeiten vergessen...
und ein struct habe ich das letzte mal vor 4 jahren benutzt ^^

kannst du die initialisierung bitte einmal ausschreiben, ich hatte das probiert mit dem selben fehler

danke

euer pate

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

19

25.09.2006, 19:40

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Definition

struct TEigenschaften
{
  int Kartenteil;
  int Ressorcen;
};

class oberkarte
{
private:
  TEigenschaften _KartenArray[100][100];

public:
  // Konstruktor mit Initialisierung

  oberkarte()
  {
    for (int i=0; i<100; ++i)
    for (int j=0; j<100; ++j)
    {
      _KartenArray[i][j].Kartenteil = 1;
      _KartenArray[i][j].Ressorcen = 0;
    }
  }

  // Get-Methoden

  TEigenschaften** KartenArray()
  {
    return (_KartenArray);
  }
  TEigenschaften KartenTeil( int x; int y )
  {
    return (_KartenArray[x][y]);
  }
};

// Nutzung


void foo()
{
  oberkarte Obj1;
  Obj1.KartenArray()[1][1].Kartenteil = 1;
}


Kann noch fehlerhaft sein (hab das nicht getestet.)

Der Pate

Frischling

  • »Der Pate« ist der Autor dieses Themas

Beiträge: 20

Wohnort: Zwischen Venus und Mars

  • Private Nachricht senden

20

25.09.2006, 20:05

ok danke

so ähnlich habe ich das auch

nur habe ich

C-/C++-Quelltext

1
2
3
4
5
6
7
8
    for (int i=0; i<100; ++i) 
    {
    for (int j=0; j<100; ++j) 
    { 
      _KartenArray[i][j].Kartenteil = 1; 
      _KartenArray[i][j].Ressorcen = 0; 
    }
    }

in eine unterklasse geschrieben

und

C-/C++-Quelltext

1
2
3
4
5
void foo() 
{ 
  oberkarte Obj1; 
  Obj1.KartenArray()[1][1].Kartenteil = 1; 
} 


heißt bei mir

C-/C++-Quelltext

1
2
 TEigenschaften obj1;
 obj1.KartenArray[1][1].Kartenteil = 1;


euer pate

Werbeanzeige