Grundschema eines Strategiespiels

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

J.R.

Betreff: Grundschema eines Strategiespiels

BeitragDi, Aug 17, 2004 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits,

ich überlege derzeit, ob ich mich nicht einmal daran machen sollte, ein einfaches Strategiespiel zu schreiben.
Jedoch bin ich mir noch nicht sicher, ob mein "Denkansatz" für ein Strategiespiel auch richtig ist.

Wenn ich z.B. ein einfaches Strategiespiel wie. z.B. Civil War Generals programmieren wöllte (natürlich bei weitem nicht so komplex, sondern lediglich beschränkt auf das Verteilen von meinen Einheiten, Befehlsausgabe an meine Einheiten und Angriffswerte)
, dann würde ich jede Menge IF-Abfragen und Select-Case Befehle nutzen.

So würde ich z.b. eine IF-Abfrage nutzen, um die Bewegung einer Einheit zu programmieren:
Wenn auf der Koordinate, auf der sich der Mauszeiger gerade befindet , eine Einheit befindet und die linke Maustaste gedrückt wurde, dann bewege die Einheit.
Und dann müsste wieder eine IF-Abfrage erfolgen, um zu klären, ob auf dem gewünschten Ziel eine Einheit patziert werden kann.

Sprich, um ein solches Strategiespiel zu erstellen, müsste man jede Menge If Abfragen nutzen, vorallem für die KI.

Würde man so ein Strategiespiel erstellen, oder würde man keinen massiven Einsatz von IF-Abfragen durchführen und statt dessen andere Mittel wählen?

Bfox

BeitragDi, Aug 17, 2004 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Um dir ein paar If Sätze zu ersparen kannst du ja auch Waypoints machen!

In einem Bestimmten Radius rund um die Waiponts kann man dann keine Gebäude bauen und so!

Somit ersparst du dir ein paar If Sätze! Wink
Glauben ist Mangel an Wissen!
 

Blitzkrieg Bop

BeitragDi, Aug 17, 2004 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist schon komplexer als nur IF und so...hab grad mal was in paar Minuten gemacht Very Happy
Und das ist erst sehr wenig.
Code: [AUSKLAPPEN]

Graphics 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Type menschen
   Field x,y,wahl,r,g,b,klick,laufen,breite,hoehe
End Type

Type essen
   Field x,y,wert,breite,hoehe
End Type

For i = 1 To 10
   m.menschen = New menschen
   m\x = Rand(10,790)
   m\y = Rand(10,590)   
   m\wahl =False
   m\klick = 0
   m\laufen =False
   m\breite = 10
   m\hoehe = m\breite
Next

For i = 1 To 5
   e.essen = New essen
   e\x = Rand(10,790)
   e\y = Rand(10,590)
   e\wert = Rand(1,7)
   e\breite = 8
   e\hoehe = e\breite
Next

Repeat
Cls

If MouseHit(1) = True
   mhit = 1
ElseIf MouseHit(1) = False
   mhit = 0
EndIf
      
For m.menschen = Each menschen
If m\wahl = False
   m\r = 255
   m\g = 255
   m\b = 255
   m\laufen = False
   m\klick = False
ElseIf m\wahl = True
   m\r = 255
   m\g = 0
   m\b = 255
   m\klick =1
EndIf
;-
If RectsOverlap(m\x,m\y,m\breite,m\hoehe,MouseX(),MouseY(),1,1)
   If mhit = 1
      m\wahl=Not m\wahl
   EndIf
EndIf

If m\klick = 1
   If mhit = 1
      m\laufen = True
      xt = MouseX()
      yt = MouseY()
   EndIf    
EndIf       

If m\laufen = True
   If m\x < xt Then m\x = m\x + 2
   If m\x > xt Then m\x = m\x - 2
   If m\y < yt Then m\y = m\y + 2
   If m\y > yt Then m\y = m\y - 2
EndIf       
   
Color m\r,m\g,m\b   

Rect m\x,m\y,m\breite,m\hoehe
Next

For e.essen = Each essen
Oval e\x,e\y,e\breite,e\hoehe
Text e\x-20,e\y-20,"Wert: "+e\wert
Next

For e.essen  = Each essen
   For m.menschen = Each menschen
      If RectsOverlap(m\x,m\y,m\breite,m\hoehe,e\x,e\y,e\breite,e\hoehe)
         m\laufen = False
         m\klick = False
         e\wert = e\wert - 1
      EndIf
      If e\wert = 0
         Delete e.essen:Exit
      EndIf
   Next
Next          

Flip
Until KeyHit(1):End              
~ Hey Ho Let's Go ~

J.R.

BeitragDi, Aug 17, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Antworten!

Allerdings werde ich wohl gar keine Waypoints oder Routinen für Menschen wie oben beschrieben benötigen.
Denn so komplex will ich mein Spiel noch gar nicht machen. Ich denke auch nicht an ein RTS sondern eher an Rundenstrategiespiel, so wie sie in den 90ern populär waren.

Aber offenbar liege ich mit meinen bisherigen Überlegungen schon mal richtig Smile

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group