Spiel wird während des spiels immer ruckeliger und langsamer
Übersicht

emcaponeBetreff: Spiel wird während des spiels immer ruckeliger und langsamer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey, hab nach langer zeit ma wieder angefangen an nem alten "spiel" zu programmieren...
ziel war es erstmal nur ein spiel zu machn wo 4spieler über einen server miteinander verbunden sind und sich gegenseitig sehen können. das problem ist, dass es aus irgend einem grund während des spielens immer langsamer wird bis fast garnix mehr geht... versuche schon seit heute morgen herauszu finden woran es liegt.... Code: [AUSKLAPPEN] Graphics3D 800, 600,32,0 SetBuffer BackBuffer() ;Spielfigur laden mario1=LoadMesh("dateien\mario.x") mario2=LoadMesh("dateien\mario.x") mario3=LoadMesh("dateien\mario.x") mario4=LoadMesh("dateien\mario.x") If start=0 Then mario=mario1 ;Inet Settings Global hostport = 27002 Global iphost$ ;IP vom Server ;Bullet laden Global munition = 10 + munitionx Global bullet=LoadMesh("dateien\bullet.x") ScaleEntity bullet, 0.1, 0.1, 0.3 ;Auto laden auto=LoadMesh("dateien\auto.x") ScaleEntity auto, 0.4, 0.4, 0.4 ;MAP LADEN Global Testmap=LoadMesh("dateien\Testmap.x") ScaleEntity Testmap, 2, 2, 2 PositionEntity Testmap, 0, -5, 0 ;Auto ScaleEntity auto, 0.4, 0.4, 0.4 If start=0 PositionEntity auto,15,-3,-120 ;Positioniere Spielfiguren ScaleEntity mario, 0.4, 0.8, 0.4 If start = 0 PositionEntity mario, -20, 0.1, -50 ScaleEntity mario1, 0.4, 0.8, 0.4 If start = 0 PositionEntity mario1, -40, 0.1, -50 ScaleEntity mario2, 0.4, 0.8, 0.4 If start = 0 PositionEntity mario2, -30, 0.1, -50 ScaleEntity mario3, 0.4, 0.8, 0.4 If start = 0 PositionEntity mario3, -10, 0.1, -50 ScaleEntity mario4, 0.4, 0.8, 0.4 If start = 0 PositionEntity mario4, 5, 0.1, -50 ;Kollisionen Const mario_TYPE=1 Const Testmap_TYPE=2 Const auto_TYPE=3 Const bullet_TYPE=4 EntityType auto,auto_TYPE EntityType mario,mario_TYPE EntityType Testmap,Testmap_TYPE EntityType bullet,bullet_TYPE Collisions auto_TYPE,mario_TYPE,2,1 Collisions mario_TYPE,Testmap_TYPE,2,2 Collisions mario_TYPE,auto_TYPE,2,2 Collisions auto_TYPE,Testmap_TYPE,2,2 Collisions bullet_TYPE,testmap_TYPE,2,2 Cls iphost$=Input ("SERVER IP EINGEBEN" ) ;Server IP eingeben iphost = integerip(iphost$) ;IP umwandeln... stream = CreateUDPStream() ;UDP stream öffnen, und nach bestem port suchen Repeat ; -------------------!!!!!! HAAAAUPTCHLEIFEEE !!!!---------------------------------- ipx = RecvUDPMsg(stream) If ipx <> 0 ;wenn nachricht erhalten: ;Alle posi-daten etc werden hier GELESEN id= ReadByte (stream) ;Id lesen, den der Host uns zuweist If id<>0 ; wenn kein fehltransfer, positionen abfragen X1#=ReadFloat(stream) Y1#=ReadFloat(stream) Z1#=ReadFloat(stream) X2#=ReadFloat(stream) Y2#=ReadFloat(stream) Z2#=ReadFloat(stream) X3#=ReadFloat(stream) Y3#=ReadFloat(stream) Z3#=ReadFloat(stream) X4#=ReadFloat(stream) Y4#=ReadFloat(stream) Z4#=ReadFloat(stream) rest=ReadLine(stream) EndIf EndIf ;Eigene Daten SCHREIBEN (position,schaden an den anderen etc...) WriteFloat stream, X# WriteFloat stream, Y# WriteFloat stream, Z# SendUDPMsg stream,iphost,hostport ; SENDEN AN HOST ; -------- SPIEL ----------------------------------------------------------- ;____________________________________________________________________________ ;Kamera für spieler 1-4 If id<>0 ;wenn Mario eine ID zugewiesen wurde,Cam anmachen camera=CreateCamera(mario) PositionEntity camera, 0, 25, -20 .MoveCamera mx#=-.25*MouseXSpeed() my#=.25*MouseYSpeed() MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 TurnEntity mario,0,mx#,0,1 TurnEntity camera,my#,0,0,0 EndIf ;Mario wird eine id zugewisen If id=1 Then mario=mario1 If id=2 Then mario=mario2 If id=3 Then mario=mario3 If id=4 Then mario=mario4 If start=0 ;wenn spieler inaktiv Print "Drücken Sie binnen 3Sekunden die Feilhoch-Taste!" ;Spieler soll sich aktivieren If KeyHit (200) start = 1 Delay(3000) EndIf If KeyHit (200) start = 1 ;--------Spiler aktiviert-------- If start=0 Then End ;Steuerung zu fuß If KeyDown(200) MoveEntity mario,0,0,1.4 If KeyDown(208) Then MoveEntity mario,0,0,-1.4 If KeyDown(205) Then MoveEntity mario,1.4,0,0 If KeyDown(203) Then MoveEntity mario,-1.4,0,0 ;Steuerung im Auto If EntityCollided(mario,auto_Type) Then bedingung=1 ;Autofahren If KeyDown(17) And bedingung=1 Then MoveEntity auto,0,0,9 PositionEntity mario,EntityX(auto),EntityY(auto),EntityZ(auto) If KeyDown(33) And bedingung=1 Then MoveEntity auto,0,0,-7 PositionEntity mario,EntityX(auto),EntityY(auto),EntityZ(auto) If KeyDown(32) And bedingung=1 Then TurnEntity auto,0,-3,0 PositionEntity mario,EntityX(auto),EntityY(auto),EntityZ(auto) If KeyDown(30) And bedingung=1 Then TurnEntity auto,0,3,0 PositionEntity mario,EntityX(auto),EntityY(auto),EntityZ(auto) ;------------spielerpositionen aktualisieren (außer seine eigene)--------------- If id<>1 PositionEntity mario1,X1#,Y1#,Z1# If id<>2 PositionEntity mario2,X2#,Y2#,Z2# If id<>3 PositionEntity mario3,X3#,Y3#,Z3# If id<>4 PositionEntity mario4,X4#,Y4#,Z4# WireFrame(0) UpdateWorld RenderWorld Breite = AufloesungX / 2 Hoehe = AufloesungY / 2 ;Position ermitteln: X# = EntityX(mario) Y# = EntityY(mario) Z# = EntityZ(mario) Flip Until KeyHit(1) ;;;;;;;;;;;;; IP UMWANDELN ::::::::::::::::::::::: Function IntegerIP(IP$) A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A4 = Int(IP$) Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4 End Function hab versuch ein bisschen ordnung reinzubringen, ich hoffe so ists ok. vielleicht fällt euch ja etwas auf was mir entgangen ist hmm... würde mich freuen ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst die Kamera nur einmal erstellen. Du erstellst in jedem Schleifendurchlauf eine neue Kamera, da ist es nicht wirklich verwunderlich, dass sich das Programm irgendwann aufhängt. Außerdem musst du WireFrame![]() ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
emcapone |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey thx für die schnelle anwort, ich probier gleich ma aus ![]() |
||
![]() |
Der_Schläfer |
![]() Antworten mit Zitat ![]() |
---|---|---|
kleine ergänzung: du könntest dir evtl. merken dass ein abfallen der geschwindigkeit (das meistens mit einer zunahme des speicherverbrauchs einhergeht) in der regel auf ein "speicherleck" hinweist, z.b. eben darauf dass z.b. massenweise entitys erzeugt werden (welche man nicht unbedingt sieht) | ||
emcapone |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
alles klar merk ich mir! erstmal behoben das problem, hoffentlich bleibts so ![]() |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
und noch ein fehler:
"HAAAAUPTCHLEIFEEE" schreibt sich "Hauptschleife" grüße, Smily |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group