Poste mes sources
Publié : dim. 02/janv./2005 21:22
Voila je poste mes sources , ca pourra p-e aidé (c'ests urement pas super bien codé ms je débute ^^)
voila server :
et voila le client :
j'spère que quelqu'un pourra m'aidé

voila server :
Code : Tout sélectionner
Procedure Xprint(mess$,x,y)
StartDrawing(ScreenOutput())
Locate(x,y)
DrawText(mess$)
StopDrawing()
EndProcedure
Enumeration
#joueur1
#joueur2
#balle
EndEnumeration
Procedure CreatePlayer()
Structure Joueur
X.l
Y.l
EndStructure
Dim Joueur.joueur(1)
joueur(0)\X = 20
joueur(0)\Y = 250
joueur(1)\X = 760
joueur(1)\Y = 250
CreateSprite(#joueur1,20,100)
StartDrawing(SpriteOutput(#joueur1))
Box(0,0,20,100,RGB(255,0,0))
StopDrawing()
CreateSprite(#joueur2,20,100)
StartDrawing(SpriteOutput(#joueur2))
Box(0,0,20,100,RGB(0,0,255))
StopDrawing()
EndProcedure
Procedure CreateBalle()
Structure Balle
X.l
Y.l
Haut.b
Bas.b
Droite.b
Gauche.b
EndStructure
Dim balle.balle(0)
balle(0)\bas = 0
balle(0)\haut = 1
balle(0)\Droite = 0
balle(0)\Gauche = 1
balle(0)\X = 400
balle(0)\Y = 300
CreateSprite(#balle,20,20)
StartDrawing(SpriteOutput(#balle))
Circle(10,10,10,RGB(255,255,255))
StopDrawing()
EndProcedure
Procedure InitAll()
InitSprite()
InitKeyboard()
InitMouse()
InitNetwork()
EndProcedure
Procedure InitWindow()
#Window_main = 0
#Window_main_flag = #Pb_window_screencentered | #Pb_window_systemmenu | #Pb_window_minimizegadget | #Pb_window_maximizegadget
Global Window_Main_Hwnd.l
Global Window_Event.l
Window_Main_Hwnd = OpenWindow(#Window_main, 0, 0, 800, 600, #Window_main_flag, "Server Test")
OpenWindowedScreen(Window_Main_Hwnd, 0, 0, 800, 600, 0, 0, 0)
EndProcedure
Procedure MoveBalle()
If(SpriteCollision(#joueur1,joueur(0)\x,joueur(0)\y,#balle,balle(0)\x,balle(0)\y))
balle(0)\gauche = 0
balle(0)\droite = 1
EndIf
If(SpriteCollision(#joueur2,joueur(1)\x,joueur(1)\y,#balle,balle(0)\x,balle(0)\y))
balle(0)\droite = 0
balle(0)\gauche = 1
EndIf
If(balle(0)\y < 0)
balle(0)\haut = 0
balle(0)\bas = 1
EndIf
If(balle(0)\y > 590)
balle(0)\bas = 0
balle(0)\haut = 1
EndIf
If(balle(0)\gauche = 1)
balle(0)\x = balle(0)\x - 1
EndIf
If(balle(0)\droite = 1)
balle(0)\x = balle(0)\x + 1
EndIf
If(balle(0)\haut = 1)
balle(0)\y = balle(0)\y - 1
EndIf
If(balle(0)\bas = 1)
balle(0)\y = balle(0)\y + 1
EndIf
EndProcedure
port = 6969
;ip$ = "127.0.0.1"
buffer = AllocateMemory(0,1,0)
InitAll()
InitWindow()
CreatePlayer()
CreateBalle()
ExamineIPAddresses()
Ip = NextIPAddress()
ipstr$ = IPString(Ip)
If(CreateNetworkServer(port)= 0)
MessageRequester("Erreur","Impossible de crée le server")
End
Else
MessageRequester("Message","Serveur " + ipstr$ + " crée sur le port " + Str(port))
EndIf
Partie = 0
Tps = 0
Repeat
DisplaySprite(#joueur1,joueur(0)\x,joueur(0)\y)
DisplaySprite(#joueur2,joueur(1)\x,joueur(1)\y)
DisplaySprite(#balle,balle(0)\X,balle(0)\y)
If(Partie = 0)
xprint("Appuyer sur Espace pour commencer",290,250)
Else
MoveBalle()
EndIf
ClientID = NetworkClientID()
NetEvent.l = NetworkServerEvent()
Select NetEvent
Case 0
Case 1
MessageRequester("Alert","Client connecté ")
Case 2
ReceiveNetworkData(ClientID,buffer,1)
dir$ = PeekS(buffer)
Select dir$
Case "Z"
joueur(1)\y = joueur(1)\y - 3
Case "S"
joueur(1)\y = joueur(1)\y + 3
; Case "Q"
; joueur(1)\x = joueur(1)\x - 3
;Case "D"
; joueur(1)\x = joueur(1)\x + 3
EndSelect
Case 3
Case 4
MessageRequester("Alert","Client deconnecté")
EndSelect
ExamineKeyboard()
If(partie = 1)
If(joueur(0)\y > 0)
If(KeyboardPushed(#pb_key_up))
joueur(0)\y = joueur(0)\y - 3
SendNetworkString(ClientID,"Z")
EndIf
EndIf
If(joueur(0)\y < 500)
If(KeyboardPushed(#pb_key_down))
joueur(0)\y = joueur(0)\y + 3
SendNetworkString(ClientID,"S")
EndIf
EndIf
EndIf
; If(KeyboardPushed(#pb_key_right))
; joueur(0)\x = joueur(0)\x + 3
; SendNetworkString(ClientID,"D")
;EndIf
;If(KeyboardPushed(#pb_key_left))
; joueur(0)\x = joueur(0)\x - 3
;SendNetworkString(ClientID,"Q")
;EndIf
If(KeyboardPushed(#pb_key_space))
SendNetworkString(ClientID,"G")
Partie = 1
EndIf
W_Event.l = WindowEvent()
If w_event = #pb_event_closewindow
quit = 1
EndIf
FlipBuffers()
ClearScreen(0,0,0)
Until quit = 1
et voila le client :
Code : Tout sélectionner
Procedure Xprint(mess$,x,y)
StartDrawing(ScreenOutput())
Locate(x,y)
DrawText(mess$)
StopDrawing()
EndProcedure
Enumeration
#joueur1
#joueur2
#balle
EndEnumeration
Procedure CreatePlayer()
Structure Joueur
X.l
Y.l
EndStructure
Dim Joueur.joueur(1)
joueur(0)\X = 20
joueur(0)\Y = 250
joueur(1)\X = 760
joueur(1)\Y = 250
CreateSprite(#joueur1,20,100)
StartDrawing(SpriteOutput(#joueur1))
Box(0,0,20,100,RGB(255,0,0))
StopDrawing()
CreateSprite(#joueur2,20,100)
StartDrawing(SpriteOutput(#joueur2))
Box(0,0,20,100,RGB(0,0,255))
StopDrawing()
EndProcedure
Procedure CreateBalle()
Structure Balle
X.l
Y.l
Haut.b
Bas.b
Droite.b
Gauche.b
EndStructure
Dim balle.balle(0)
balle(0)\bas = 0
balle(0)\haut = 1
balle(0)\Droite = 0
balle(0)\Gauche = 1
balle(0)\X = 400
balle(0)\Y = 300
CreateSprite(#balle,20,20)
StartDrawing(SpriteOutput(#balle))
Circle(10,10,10,RGB(255,255,255))
StopDrawing()
EndProcedure
Procedure InitAll()
InitSprite()
InitKeyboard()
InitMouse()
InitNetwork()
EndProcedure
Procedure InitWindow()
#Window_main = 0
#Window_main_flag = #Pb_window_screencentered | #Pb_window_systemmenu | #Pb_window_minimizegadget | #Pb_window_maximizegadget
Global Window_Main_Hwnd.l
Global Window_Event.l
Window_Main_Hwnd = OpenWindow(#Window_main, 0, 0, 800, 600, #Window_main_flag, "Client Test")
OpenWindowedScreen(Window_Main_Hwnd, 0, 0, 800, 600, 0, 0, 0)
EndProcedure
Procedure MoveBalle()
If(SpriteCollision(#joueur1,joueur(0)\x,joueur(0)\y,#balle,balle(0)\x,balle(0)\y))
balle(0)\gauche = 0
balle(0)\droite = 1
EndIf
If(SpriteCollision(#joueur2,joueur(1)\x,joueur(1)\y,#balle,balle(0)\x,balle(0)\y))
balle(0)\droite = 0
balle(0)\gauche = 1
EndIf
If(balle(0)\y < 0)
balle(0)\haut = 0
balle(0)\bas = 1
EndIf
If(balle(0)\y > 590)
balle(0)\bas = 0
balle(0)\haut = 1
EndIf
If(balle(0)\gauche = 1)
balle(0)\x = balle(0)\x - 1
EndIf
If(balle(0)\droite = 1)
balle(0)\x = balle(0)\x + 1
EndIf
If(balle(0)\haut = 1)
balle(0)\y = balle(0)\y - 1
EndIf
If(balle(0)\bas = 1)
balle(0)\y = balle(0)\y + 1
EndIf
EndProcedure
port = 6969
;ip$ = "127.0.0.1"
buffer = AllocateMemory(0,1,0)
InitAll()
InitWindow()
CreatePlayer()
CreateBalle()
ip$ = InputRequester("Message","Veuillez entrer ici l'addresse IP du serveur","")
ConnectionID = OpenNetworkConnection(ip$,port)
If(ConnectionID = 0)
MessageRequester("Erreur","Impossible de rejoindre le server")
End
Else
MessageRequester("Message","Connection établit sur le serveur " + ip$ + " sur le port " + Str(port))
EndIf
Repeat
DisplaySprite(#joueur1,joueur(0)\x,joueur(0)\y)
DisplaySprite(#joueur2,joueur(1)\x,joueur(1)\y)
DisplaySprite(#balle,balle(0)\X,balle(0)\y)
If(partie = 1)
MoveBalle()
Else
xprint("En attente du server",290,250)
EndIf
NetEvent.l = NetworkClientEvent(ConnectionID)
Select NetEvent
Case 0
Case 1
Case 2
ReceiveNetworkData(ConnectionID,buffer,1)
dir$ = PeekS(buffer)
Select dir$
Case "Z"
joueur(0)\y = joueur(0)\y - 3
Case "S"
joueur(0)\y = joueur(0)\y + 3
Case "Q"
joueur(0)\x = joueur(0)\x - 3
Case "D"
joueur(0)\x = joueur(0)\x + 3
Case "G"
partie = 1
EndSelect
Case 3
EndSelect
ExamineKeyboard()
If(joueur(1)\y > 0)
If(KeyboardPushed(#pb_key_up))
joueur(1)\y = joueur(1)\y - 3
SendNetworkString(ConnectionID,"Z")
EndIf
EndIf
If(joueur(0)\y < 500)
If(KeyboardPushed(#pb_key_down))
joueur(1)\y = joueur(1)\y + 3
SendNetworkString(ConnectionID,"S")
EndIf
EndIf
;If(KeyboardPushed(#pb_key_right))
; joueur(1)\x = joueur(1)\x + 3
; SendNetworkString(ConnectionID,"D")
;EndIf
; If(KeyboardPushed(#pb_key_left))
; joueur(1)\x = joueur(1)\x - 3
; SendNetworkString(ConnectionID,"Q")
;EndIf
;If(SpriteCollision(#joueur1,joueur(0)\x,joueur(0)\y,#joueur2,joueur(1)\x,joueur(1)\y))
; xprint("touché",100,100)
;EndIf
W_Event.l = WindowEvent()
If w_event = #pb_event_closewindow
quit = 1
EndIf
FlipBuffers()
ClearScreen(0,0,0)
Until quit = 1

