Netzwerk Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Random00

Betreff: Netzwerk Problem

BeitragMo, Dez 20, 2004 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi erstmal Wink

Ich habe jetzt kürzlich angefangen mit Blitz3D zu programmieren und ich muss sagen, dass mir die Sprache gut gefällt (auch weil alles gut verständlich und "einfach" ist).
Ich habe mich entschlossen einen 2D Monopoly-Klon zu erschaffen, der über Netzwerk spielbar sein soll...
Nach kleinen Startschwierigkeiten weiß ich nun ungefähr wie ich das Spiel für einen Spieler prgrammieren muss, doch ich habe irgendwie die Sache mit dem Netzwerk nicht richtig verstanden,...
Ich habe mir auch schon Bastard von Hubsi.biz runtergeladen, doch in dem Sourcecode blicke ich noch weniger durch...

Muss man für jede Variable extra schreiben, dass sie per Netzwerk gesendet werden soll?!? oder muss man nur einmal connecten und alles geht wie von alleine ?!?
Gibt es ein dokumentiertes Open Source Netzwerk Game?!?

Mfg Random00
Basis der European Worms Forces
W:A ownez btw oO
 

BIG BUG

BeitragMo, Dez 20, 2004 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Schaue dir hier die TCP-Befehle unter Netzwerk in der Onlinehilfe an.
Nach jedem Zug musst du dann alle geänderten Variablen und Felder an die anderen Spieler übertragen(mit den WriteByte/WriteLine/etc. Befehlen).
Action-Spiele wie Bastard brauchste Dir erst gar nicht anzukucken, da bei Dir die Netzwerkgeschichte sowieso wesentlich einfacher ausfällt.

[EDIT]
Hier ein Beispiel für einen TCP-Chat. Damits einfach bleibt, ist das Ding in ein Server und ein Clientprogramm aufgeteilt:

Server:
BlitzBasic: [AUSKLAPPEN]

AppTitle \"TCP Server\"

svrGame=CreateTCPServer(8080)
If svrGame<>0 Then
Print \"Server erfolgreich gestartet, warte auf Client...\"
Else
Print \"Server konnte nicht gestartet werden\"
WaitKey()
End
End If

Repeat
strStream=AcceptTCPStream(svrGame)
If GetKey () Then End
Until strStream
Print \"Client verbunden\"

While Not KeyHit(1)
If ReadAvail(strStream) Then Print ReadString$(strStream)
If GetKey() Then WriteString strStream, Input$(\"Deine Nachricht: \")
Wend

CloseTCPServer svrGame
End


Client:
BlitzBasic: [AUSKLAPPEN]

AppTitle \"TCP Client\"

strStream=OpenTCPStream(\"127.0.0.1\",8080)
If strStream<>0 Then
Print \"Client erfolgreich verbunden\"
Else
Print \"Konnte keine Verbindung herstellen\"
WaitKey()
End
End If

While Not KeyHit(1)
If ReadAvail(strStream) Then Print ReadString$(strStream)
If GetKey() Then WriteString strStream, Input$(\"Deine Nachricht: \")
Wend

CloseTCPStream strStream


Starte den Server, dann den Client. Wenn es geklappt hat kannst Du von dem einen Fenster an das andere Nachrichten schicken.
Möchtest du an einen anderen Computer Nachrichten schicken, so muss im Clientprogramm noch die IP(Identifikationsadresse eines Computers im Netzwerk) des Servers eingegeben werden.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

Random00

BeitragMi, Dez 22, 2004 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für das Programm =)

Hab schon wieder neue Probleme mit dem Game =/
Diesmal machen mir die Ereigniskarten zu schaffen....
Ich hätte gerne, dass wenn man auf ein Erienigskartenfeld kommt man mit einer bstimmten Tase diese Karte zieht und die dazugehörige Meldung mit Enter bestätigt... Doch man kann nachdem man die Karte gezogen hat wieder eine neue Karte ziehen.... Hab schon mit nem (1/0) Switch probiert dass in den Griff zu kriegen funktioniert aber nicht...

Code: [AUSKLAPPEN]
For i = 1 To 6
  If cp = karte_feld(i) And kartenzug = 0 Then
    kartenzug = 1
    Text 300,250, "EREIGNIS, bitte 'K' drücken!"
    If KeyHit(37)
      k = Rnd(1,3)
      Repeat
      Text 150,150, karte_text(k)
      Text 150,170, "Zum Fortfahren drücken sie bitte ENTER"
      Flip
      Until KeyHit(28)
    EndIf
  EndIf
  If cp > karte_feld(i) Then
    kartenzug = 0
  EndIf
Next


karte_feld() ist die Position an der ein Ereignisfeld ist.
un karte_text() ist der Ereigniskartentext
cp ist Current Position (also wo der Spieler im moment steht)
Basis der European Worms Forces
W:A ownez btw oO
 

Reaper

BeitragMi, Dez 22, 2004 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin selbst ein Noob aber probier eine While Wend schleife, Mit WaitKey und KeyHit Enter!
 

Random00

BeitragMi, Dez 22, 2004 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie mit While ... Wend Schleife?!?
Ich muss es ja mindestens einmal durchlaufen... deswegen dachte ich, dass ich lieber Repeat...Until nehme...
Aber irgendwie stimmt was mit der Variable kartenzug net, weil sonst würde es doch gehen =/
NEED Help Oo
Basis der European Worms Forces
W:A ownez btw oO
 

Reaper

BeitragMi, Dez 22, 2004 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
naja probiers mal so
global Karte

While karte = 0
Text 150,150, karte_text(k)
Text 150,170, "Zum Fortfahren drücken sie bitte ENTER"
If Keyhit(28) then karte = 1
Flip
Wend
karte = 0

kP ob es funktioniert aber probier es einfach mal, wie gesagt bin BB-Anfänger Rolling Eyes

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group