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

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

211

15.03.2006, 20:29

ähmm eine frage, die Levelaufstiege sind komisch, bleit das so? erst mach ich 5 und dann 1000 und dann 130000 schaden, heftiger anstieg...
Was es alles gibt, das ich nich brauche - Aristoteles

212

15.03.2006, 20:39

Im ersten Level ists nur glück das man überlebt und im letzten gewinnt man dann fast mit einem Angriff gegen den Endgegner.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Sheddex

unregistriert

213

15.03.2006, 21:56

Ich hatte am Anfang die tolle Idee alle Attribute pro Level zu verdoppeln... Jetzt ist alles besser: Der Aufstieg ist jetzt sogar Rassenspezifisch (Folgendes zählt pro Stufe, die Reihenfolge ist Stärke, Intelligenz, Konstitution):

Mensch: +3, +2, +1
Elf: +1, +3, +2
Ork: +2, +1, +3

Außerdem ist der Code verbessert: Die Gegner sind jetzt nicht einfache Variablen die im Kampfmodus daklariert werden, sondern schön in Klassen verpackt - und genau da ist ein Problem Aufgetaucht:

1. (Funktioniert): Per Zufall wird eine Monster-ID ermittel die zwischen 1 und dem aktuellen Spielerlevel liegt.

2. (Funktioniert nicht):

C-/C++-Quelltext

1
2
if (MonsterID == 1)
     CRat Rat; //Eine Ratte soll erstellt werden


Danach soll die Ratte natürlich auch verwendet werden sollen, da die Instanz allerdings innerhalb des if-Blockes erstellt wurde, funktioniert das nicht... Und ich habe keine Ahnung wie ich das Lösen kann... falls mir jemad helfen kann, kann er das gerne tun ;)

214

15.03.2006, 22:16

Deklariere deine Ratte doch mal vorher und nutze sie dann einfach. Ich weiß nicht obs 100% geht aber ich denke mal schon.

bassdscho

Alter Hase

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

215

16.03.2006, 08:10

du musst noch speicher für deine Klasse holen mit dem "new" operator, der dann auch deinen Konstruktor ausführt.
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

216

16.03.2006, 14:22

Das braucht man doch nur, wenn man es auf dem Heap deklariert, oder?
Korrigiert mich wenn ich Falsch liege.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

217

16.03.2006, 14:33

Zitat

Das braucht man doch nur, wenn man es auf dem Heap deklariert, oder?

Korrekt, aber der eigentliche Vorteil ist der, dass man die Deklaration von
der Instantiierung örtlich trennt. D.h. man kann eine Variable vom Typ "Rat * x" ganz
früh deklarieren und erst viel später, wenn man es denn dann braucht,
mit "x=new Rat()" instantiieren.

Das Kommando "new Rat()" steht in einer Methode - und würde die
Variable für die Ratte auch da stehen, dann wär sie ja lokal... Aber wenn
man der Klasse eine Variable "Rat * x" gibt, dann können alle Klassenmethoden
auf die Ratte zugreifen (sobald sie instantiiert ist!).

Ein Problem mit dieser Lösung ist: Dran denken "delete x" aufzurufen!

Darum wäre es schöner und sicherer, direkt "Rat x" (ohne Pointer) in der Klasse zu
deklarieren. Das geht aber nur, wenn die Ratte einen Defaultkonstruktor
hat. In diesem
Fall wird die Ratte erstellt sobald die zugehörige Klasse erstellt wird.

Stefan

Sheddex

unregistriert

218

17.03.2006, 15:41

Naja, was ihr hier schreibt ist auch nicht wirklich toll :P
Aber das ist ja fürs programmieren an sich jetzt erstmal nicht so wichtig... das kann man als 'Feintuning' bezeichen...

Aber mal eine andere Frage: Wie kann man dateien in ordner reinspeichern? Standardmäßig werden diese ja in den Ordner der Exe gespeichert.

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

219

17.03.2006, 15:44

afaik als datei name sowas wie

C-/C++-Quelltext

1
"Data\\SaveGame.sav"

schreiben. die zwei backslashes sind wichtig, wegen escape sequenz!

Sheddex

unregistriert

220

17.03.2006, 17:01

ThanX, ich hab's natürlich mal wieder mit nur einem ausprobiert ;)

Werbeanzeige