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

26.08.2011, 19:38

Verschiedene Gegner und Waffen?

Hallo!

Ich versuche mich gerade an C# und habe auch schon ein Spiel. Docj bekanntlicherweise will man mehr und jetzt hätte ich gerne mehrere andere Gegner genauso wie Waffen, dass man nicht immer nur mit der gleichen schießt.
Erstelle ich dazu neue Klassen und und binde sie dann in meine Game klasse? Wenn ja wie binde ich diese dann? Schreibe ich die Gegner in meine Vorhandenen Gegner Funktionen?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 private void AddEnemy()
        {
            // Erstelle Animation
            Animation enemyAnimation = new Animation();

            // Initialize die Animation
            enemyAnimation.Initialize(enemyTexture, Vector2.Zero, 47, 61, 8, 30, Color.White, 1f, true);

            //Zufällige Position
            Vector2 position = new Vector2(GraphicsDevice.Viewport.Width + enemyTexture.Width / 2, random.Next(100, GraphicsDevice.Viewport.Height - 100));

            // Gegner erstellen
            Enemy enemy = new Enemy();

            // Initialize den Gegner
            enemy.Initialize(enemyAnimation, position);

            // Gegner zur Liste hinzufügen
            enemies.Add(enemy);
        }


Schreibe ich hier dann die neuen Gegner Typen rein? Und das gleiche auch dann mit den Waffen bzw. Projektilen?
Wäre schön wenn mir wer weiter Helfen könnte ;)

2

26.08.2011, 19:55

Aloha,


schau dir dazu das Thema Vererbung an.

Du könntest Grundeigenschaften wie HP etc. in die "Hauptklasse" speichern und spezielle Eigenschaften in die Subklassen.

Die Hauptklasse hat dann Funktionen wie initialize und render und so, dann lässt es sich auch einfach über die komplette Gegnerliste iterieren, man benötigt ergo nicht für jede Gegnerabspaltung ne neue Liste.

Das gleiche macht man mit den Waffen, Munitionen etc.

lg

3

26.08.2011, 19:55

Ich mache immer eine Hauptklasse. Für verschiedene Kanonen die Klasse Kanone. Sie ist allen Kanonen-Klassen übergeordnet.
Jede Kanonenart, also jede Kanonenklasse, erbt nun von der Klasse Kanone, um den Code klein zu halten.

MfG
Check

4

26.08.2011, 20:02

also soll ich die Hauptenemy Klasse an den neuen Gegner Typ vererben?Und das gleiche auch mit den Kanonen?

Also schreibe ich:

Quellcode

1
2
3
4
5
6
class enemy2 : enemy 
.
.
.
.
.


Und danach kommen halt die Funktionen.
Ist vererbung so gemeint?

5

26.08.2011, 20:05

Was verstehst du denn unter Vererbung? (ACHTUNG! Rhetorik!)

MfG
Check

6

26.08.2011, 20:09

Hm...gute Frage ;)
Auch wenn sie rethorisch ist würde ich sagen dass die neue Klasse etwas von der Basisklasse übernimmt...aber ich denke, dass ich da irgendwas übersehe... :-\

7

26.08.2011, 20:17

Öhm, nö. :lol:

Microsoft hat einen schönen Artikel zur Vererbung. Kannst ja nochmal nach wälzen.

MfG
Check

8

26.08.2011, 20:30

Obwohl es nicht viel text ist, ist es ganz schön verwirrend...erstelle ich dafür eine neue Klasse oder schreibe ichd as in eine Vorhandene? Und was kommt in public B() rein (Fett gedruckt)?

public class B : A
{
public B() { }
}

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

9

26.08.2011, 20:38

public B ()

ist eine methode von public class B

10

26.08.2011, 20:41

ah ok da schreibe ich dann alles wie Update oder Draw hinein oder?
Wenn ja dann verstehe ichs jetzt :D

Werbeanzeige