Seite 5 von 7
Re: BUGSY
Verfasst: 01.09.2010 16:32
von darius676
soweit ich den fehler interpretiere handelt es sich um eine schwachstelle bei der PB mausüberprüfung, wenn die maus zu schnell daten liefert veschluckt die funktion die eingabe/status. da das problem erkannt ist wird sich zukünftig eine möglichkeit finden dies zu umgehen.
Re: BUGSY
Verfasst: 01.09.2010 19:16
von dllfreak2001
So sehe ich das auch.
Re: BUGSY
Verfasst: 01.09.2010 19:46
von darius676
So. wenn du magst tu folgendes testen:
http://www.file-upload.net/download-279 ... 4.dll.html
diese Datei bitte umbenennen in TILE4.dll und in den _Data Ordner von .nexus kopieren. bitte ein Backup der orig. Tile4.dll machen.
die veränderte TILE4.dll lässt dich das Spielerraumschiff mit der Maus testen. bitte um rückmeldung ob auch hier der LUCYMILLISECONDS wert geändert werden muss, damit es bei dir funktioniert.
wenn es ohne änderung funktioniert dürfte es an der höheren cpu-auslastung durch nexus liegen. (mehr objekte und die PBmaus hat vielleicht mehr zeit um "luft" zu holen)
danke.

Re: BUGSY
Verfasst: 02.09.2010 16:51
von dllfreak2001
Nein auch hier das selbe, erst ab 35ms wird das Spiel spielbar.
Wie sieht eigentlich das timebased Movement bei dir aus, welche Methode wendest du
an bzw. regelst du so auch die Mausgeschwindigkeit?
Es ist sehr komisch, das ruckeln passiert eigentlich nur wenn man die Maus schnell diagonal bewegt wird.
Und auf dem Credits-Screen und im Spiel ist es schlimmer als im Hauptmenü
Re: BUGSY
Verfasst: 02.09.2010 17:49
von darius676
vereinfacht schaut des so aus:
main()
Keyboard() ----> routinen die die jeweilige funktion aufrufen, damit eine grundsätzliche controlle möglich ist KEINE direkte abfrage in diesem codeteil
Mouse() ---> hier das gleiche...und da könnte der fehler liegen: unter umständen ist die mausposisiton die gemeldet wird nicht mer mit der mousposition die über sgfx()-subroutinen ausgewertet wird identisch... werd das bei gelegenheit komplett in die SGFX()auslagern.
FWORLD()
endmain()
FWORLD()
if elapsed time blalalalalalalabla... > usw.... ;diese abfrage versucht ein minimum/maximum von 60 frames herzustellen. bei schwachen systemem wird die millisecond eher überschritten als bei stärkeren und da setzt das "echtzeit" system an.
FBLIT() ;die HauptRoutine
endif
endFWORDL()
FBLIT()
SGFX()
BLIT......
endFBLIT()
SGFX()
check objekt situation und eigenschaften
wähle weitere routine falls notwendig, zur behandlung des objektes
endSGFX()
Re: BUGSY
Verfasst: 02.09.2010 19:04
von darius676
hier eine BUGSY- Version /EXE mit ausgelagerter "maus"
http://www.file-upload.net/download-279 ... e.zip.html
bitte in BUGSY Verszeichnis kopieren und LUCYSPEED wieder auf 15 setzen... vielleicht funktionierts

Re: BUGSY
Verfasst: 02.09.2010 19:16
von dllfreak2001
Nö, das hat leider nicht geholfen ist noch immer so.
Ist der Cursor im Teil mit dem Timebased Movement drin?
MouseX()/Y sollte vielleicht doch bei jedem Durchlauf der Hauptschleife aktuallisiert werden bzw. eher Examinemouse() .
Allerdings kann ich keinen Fehler entdecken.
Ich werde mal einen experimentellen Code schreiben um diesen Fehler zu provozieren und einzugrenzen.
Re: BUGSY
Verfasst: 02.09.2010 19:27
von dllfreak2001
Steckt dein ExamineMouse() eventuell irgendwo im Teil mit dem timebased movement ?
Re: BUGSY
Verfasst: 02.09.2010 19:34
von darius676
die eingabe von mouse und tastatur ist jetzt in der der "schlüssel" routine FWORLD() ...symbolname im code nennt sich die DDD() (für 3D

)
ich will sichergehen, dass die eingabe zeitnah abgerufen wird und jederzeit zur verfügung steht. für joystick gilt das nicht, da dieser nur über eine in der SGFX liegenden routine abgerufen wird. jetzt werd ich die maus auch dahinein legen.. schau ma mal...
Re: BUGSY
Verfasst: 02.09.2010 19:36
von darius676