Banalität SQL - 3D Anwedung laag Probleme wg. Timingfunktion
Übersicht

mayanBetreff: Banalität SQL - 3D Anwedung laag Probleme wg. Timingfunktion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo, ich hab mal ne frage an alle die sich ein wenig mit sql und timing in 3d anwendungen beschäftigt haben, denn ich habe hier ein kleines Probelm.
versuchsweise hab ich mir ne kleine Datenbank angelegt die ledigklich mal zu testzwecken x y und z coordinate speicehrt. mein problem hierbei ist - dass wenn ich den mysql query z.b. alle 2000 ms schicke (was etwas lang ist - aber darum gehts auch net) - der client alle 2 secs n laag hat wenn er den sql query schickt - nervig beim herumlaufen. meine frag ist - ist es irgendwie machbar den query asynchron zum hauptthread laufen zu lassen oder gibts ne andere möglichkeit, das zeitliche event auszuführen ohne dass der code hängenbleibt? Für sämmtliche Anregungen etc wäre ich dankbar. merci schon mal im Vorraus. |
||
mayanBetreff: Kleiner Codeauszug zur Verständlichkeit |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
While Not KeyDown( 1 )
If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0 If KeyDown( 203 )=True Then TurnEntity camera,0,1,0 If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.1 If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.1 x#=EntityX(camera) y#=EntityY(camera) z#=EntityZ(camera) PositionEntity camera,x#,terra_y#,z# If MilliSecs() > Client_Event_Timer Client_Event_Timer = MilliSecs() + Update_Frequenz Server_Player_Pos = SQLQuery(SqlConnection, "UPDATE `player_pos` SET `Cur_X`='"+Str(x#)+"',`Cur_Y`='"+Str(y#)+"',`Cur_Z`='"+Str(z#)+"'WHERE `ID`=1000 LIMIT 1;") EndIf UpdateWorld RenderWorld If (SqlConnection) Text 10,10,"_SV_WORLD_EVENT: connected",False,False Text 10,22,"_SV_WORLD_EVENT: starting update",False,False Else Text 10,10,"_SV_WORLD_EVENT: can´t connect",False,False WaitKey End EndIf Text 10,100,x# Text 10,112,y# Text 10,124,z# Text 900,10, "FPS: "+update_FPS(FPS) If (Server_Player_Pos) Text 10,34,"_SV_WORLD_EVENT: player_pos query running (table player_pos)",False,False Else Text 10,34,"_SV_WORLD_EVENT: player_pos query failed (client generates laaags now)",False,False EndIf Flip 0 Wend CloseSQLStream(SqlConnection) End Function update_FPS(checktime%=10) Local Time,Righttime FPS_Zahler = FPS_Zahler + 1 Time=MilliSecs() If Time > FPS_START_TIME + checktime% Righttime = Time - FPS_START_TIME FPS_START_TIME = Time FPS# = (Float(FPS_Zahler)/Float(Righttime))*1200.0 FPS_Zahler = 0 EndIf Return FPS# End Function |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Für ein eigenständiges Ausführen unabhängig von deinem B3D Programm müsstest du eine SQL DLL benutzen, die einen eigenen Thread hat und die entsprechende Funktionen zur steuerung etc für B3D bietet.
Allerdings frage ich mich, was du damit genau vor hast, denn wenn du "ruckeln beim bewegen" sagst, müsste man davon ausgehen, dass du Echtzeit willst und das geht mit SQL definitiv nicht ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
mayan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oki - merci für deine schnelle antwort - echtzeit - naja mit ner kleinen latenz mit cira 200 ms wohl auch nicht machbar - naja mist - | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group