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

1

06.09.2013, 11:04

ID's oder Klassen verwenden um z.b. Holz zu kennzeichnen?

Hey,

ich bau nen kleines Aufbauspiel. Nun produziert nen Gebäude z.b. Holz. Um zu markieren was auf dem Wagen ist der es abholt, müsste ich dort nun entweder die ID für Holz speichern, oder ich mach ne leere Klasse Holz und schaue per Instanceof immer was der Wagen transportiert...

Was wäre besser?

Bei der Klasse könnte man darin noch Icon etc speichern.

lg
Philipp

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

2

06.09.2013, 11:11

Ich würde eine Klasse Ressource verwenden, die in einem Enum den Typ der Ressource speichert.
+ beliebige weitere Informationen, wie zum Beispiel das Icon

3

06.09.2013, 11:20

o.O
Warum willst du denn in jedem Wagen alle Informationen neu speichern?
Hier macht meiner Meinung nach eine ID durchaus Sinn, so ist die Redundanz am geringsten.

4

06.09.2013, 13:13

Ich würd des mit'ner Enumeration machen...
Also, dass es dann so ungefähr aussieht: Wagen.fill(Holz);

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

06.09.2013, 13:26

Was für Arten von Ressourcen gibt es in diesem Spiel denn so; inwiefern macht es Sinn, Ressourcen durch Klassen zu repräsentieren?

6

06.09.2013, 13:42

Zum Start nur 4 Stück. Aber später will ich viel mehr einbauen. Es ist nen Projekt um wieder was rein zu kommen und daher versuche ich was Anno artiges zu bauen.

Ich hab mich für Enum entschieden. Klingt gut und logisch :).

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

7

06.09.2013, 18:52

Wenn du nur wenige Ressis hast, kannst du auch gleich Arrays für jede Form von Ressourcen-Lager (Kontor, Vorratslager, Wagen,...) verwenden. Z.B. sowas:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
public:
enum ResourceID {
  WoodID = 0x00,
  StoneID,
  IronID,
  PitchID,
  MaxResIndex,
}; // enum
uint16_t item_count(ResourceID i) const noexcept {return res_[static_cast<size_t>(i)];}
uint16_t item_modify(ResourceID i, uint16_t x) noexcept {res_[static_cast<size_t>(i)] += x;}
private:
std::array<uint16_t,MaxResIndex> res_;
Dann musst du nicht erst schauen, was es transportiert, um die Menge abzufragen, und kannst zudem Ressis aller Typen zugleich transportieren. In diesem Fall ist es möglich, von jedem Ressi-Typ 65535 zu transportieren. Dinge wie ein Maximalgewicht sind leicht hinzu gefügt.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige