2D Spiel

Anfängerfragen zum Programmieren mit PureBasic.
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

2D Spiel

Beitrag von Pandorra »

hi,
ich mache gerade ein 2D Spiel und weiß nicht wie ich es machen kann das es mehrere Runden gibt ohne jeder einzelnen Koordinaten zu geben.
Ich hab überlegt ob es evtl. mit Structuren geht, nur leider weiß ich nicht wie ich das machen soll.

Hier der Code( mit sehr vielen Fehlern)

Code: Alles auswählen

#Number_of_Rounds = 10

Global Leben.l

Global Staerke.l
Global Verteidigung.l
Global Geschwindigkeit.l
Global Ausdauer.l
Global Glueck.l

Structure Runde
xPosAngriff.f
yPosAngriff.f
xPosHP.f
yPosHP.f

xPosStaerke.f
yPosStaerke.f
xPosVerteidigung.f
yPosVerteidigung.f
xPosGeschwindigkeit.f
yPosGeschwindigkeit.f
xPosAusdauer.f
yPosAusdauer.f
xPosGlueck.f
yPosGlueck.f
xPosBox.f
yPosBox.f
Box.l
EndStructure

Leben = 180

Staerke = 10
Verteidigung = 100
Geschwindigkeit = 10
Ausdauer = 10
Glueck = 10


Global Schlag.l
Schlag = 100 + Staerke - Verteidigung  

Global Dim *Runden.Runde(#Number_of_Rounds -1)
For i=0 To #Number_of_Rounds
Next


InitKeyboard()
  
 
  If InitSprite() = 0
    MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
    End
  EndIf
  
  If OpenWindow(0, 0, 0, 1220, 800, "...", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)

    If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 1, 0, 0) 
    Else
      MessageRequester("Error", "Can't open windowed screen!", 0)
      End
    EndIf
  EndIf
  
  LoadSprite(0 ,"Data\Anzeige.bmp")


  
      
Procedure RenderGame(*R.Runde)  
  Repeat
    Repeat
    DisplayTransparentSprite(0, 0, 0)
    StartDrawing(WindowOutput(0))
    DrawText(13, 20, "HP: "+ Str(Leben), RGB(255, 255, 255), RGB(0, 0, 0))

    DrawText(13, 60, "Stärke: "+ Str(Staerke), RGB(255, 255, 255), RGB(0, 0, 0))
    DrawText(13, 80, "Verteidigung: "+ Str(Verteidigung), RGB(255, 255, 255), RGB(0, 0, 0))
    DrawText(13, 100, "Geschwindigkeit: "+ Str(Geschwindigkeit), RGB(255, 255, 255), RGB(0, 0, 0))
    DrawText(13, 120, "Ausdauer: "+ Str(Ausdauer), RGB(255, 255, 255), RGB(0, 0, 0))
    DrawText(13, 140, "Glück: "+ Str(Glueck), RGB(255, 255, 255), RGB(0, 0, 0))
    StopDrawing()
    
  ExamineKeyboard()

    If KeyboardReleased(#PB_Key_A)
    StartDrawing(WindowOutput(0))
    DrawText(340, 300, "Schlag", RGB(255, 255, 255), RGB(0, 0, 0)) 
    DrawText(340, 320, Str(Schlag), RGB(255, 255, 255), RGB(0, 0, 0)) 
    StopDrawing()
   
    Zufall = Random(4)  
    Schlag - Staerke - RGlueck + Verteidigung
      If Ausdauer > 0
      Ausdauer - 1
        If Zufall = 1
        Staerke + Random(10)
        EndIf
        If Zufall = 2
        Verteidigung + Random(10)
        EndIf
        If Zufall = 3
        Geschwindigkeit + Random(10)
        EndIf
        If Zufall = 4
        Glueck + Random(10)
        EndIf
        EndIf
        If Ausdauer = 0 And Leben = 0
        Leben - 10
        EndIf
      RGlueck = Random(Glueck)
      Schlag + Staerke + RGlueck - Verteidigung 
      
      If Schlag < 0
      Schlag = 0
      EndIf
       
      If Leben > 0
      Leben - Schlag
      EndIf
      EndIf
    
      Event = WindowEvent()
      
      If Event = #PB_Event_CloseWindow
        End 
      EndIf
    
    If Leben = 0
    EndIf
    
    If Leben < 0
    Leben = 0
    EndIf
    

  ForEver

  Until Event = 0
  EndProcedure  
  
 For i = 0 To #Number_of_Rounds
 RenderGame(*Runden(i))
 Next i 
Hoffe ihr könnt mir helfen.
Benutze PB v 4.40 Beta 3
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

^^
ich hatte noch eine Frage...
Benutze PB v 4.40 Beta 3
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

was für ne Runde?
Was für koordinaten kann eine Runde haben?
Ich versteh überhaupt nicht den zusammenhang^^

Und deine Überschrift ist wieder nicht die beste :wink:

Um einem Array mehrere Werte zu zu weisen ist die For-Schleife zu
gebrauchen. ... mehr kann ich dir immoment auch nicht sagen.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

So viel weiß ich.
(Überschriften sind nicht so mein Ding)
Mein 2D Spiel soll einmal Rundenbasierend sein oder echtzeit( zwei Moduse)
Bei Runden Basierend hat man momentan zwei Starteinheiten und man sagt was diese tun sollen. Dann wird dies Abgerechtnet. bsp.
Soldat,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Gegner
Hp : 100,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, HP: 100
Stärke : 20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, setzt....
...

setzt Schlag ein
100 Schaden

Soldat...................................Gegner
HP : 90.................................HP : 0





Sieger....
Exp...
Gewonnenes Gold
Verlierer...
Exp...



bsp. Ende

(Mein erstes Kampfsystem, weil ich erstmal klein anfangen will)
Benutze PB v 4.40 Beta 3
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

und was ist da jetzt dein Problem?
(wenns geht andere Worte als wie im ersten Post :D )

Überschrift: beschreibe dort dein Problem mit wenigen Worten

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Beitrag von C4rizz »

Sry aber ich versteh das Problem leider auch net.
Beschreib doch bitte einmal wie das Spiel ablaufen soll, was man machen kann und an welcher Stelle exakt dein Problem liegt. :allright:
PB 3.94/4.10
Meine Hompage
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Das Problem von Pandorra ist einfach, daß er sich an Dingen ohne jeglisches Grundwissen versucht. Meine Empfehlung ist, arbeite am Besten mal die Tutorials von PB durch, bevor ein Game programieren willst.
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

Ich hatte das Problem, dass ich eine Struktur machen wollte damit ich ein Bild an verschiedenen Koordinaten anzeigen kann, ohne diese manuell vorzuprogrammieren. Die neuen x, y Werte hatte er nicht übernommen( er hat das gleiche Bild immer wieder an einer Stelle angezeigt.

(In meinen oberen Post hab ich den Code ausversehen ohne den Structuren gepostet.)


Ich hatte nur vergessene, was PMV in seinem ersten Beitrag eingebaut hat reinzumachen. Ich hatte also keine For-Schleife.
Jetzt klappt alles.
Benutze PB v 4.40 Beta 3
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Beitrag von C4rizz »

na denn is ja supi^^
PB 3.94/4.10
Meine Hompage
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Pandorra hat geschrieben:So viel weiß ich.
:mrgreen:
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten