hi!
ich hab folgende angabe:
es soll ein netzwerk-mensch-ärger-dich-nicht programmiert werden. das spielfeld und die kegel sollen in der paint funktion mit ev.graphics.DrawEllipse usw. gezeichnet werden.
das problem ist jetzt das das ziehen animiert sein soll, d.h. wenn ein kegel von feld 6 auf feld 9 zieht, soll er erst auf 7 dann nach 3s auf 8 und dann nach 3s auf feld 9. ich hab versucht das mit einem timer (aus system.timers.timer) zu lösen. also beim elapsed-event immer um eins weiter. wenn ich jetzt aber zwei instanzen des programms auf einem rechner starte, sieht es so aus als ob sich die timer gegenseitig behindern.
zur verdeutlichung die schritte in meinem programm
- zug wird festgelegt (welcher kegel um wieviel felder vorrückt)
- info an server über diesen zug
- start des timers
- bei jedem elapsed um eins weiter
der server schickt die erhaltene info an den anderen client, worauf dieser ebenfalls die animation startet (also den timer).
die logik passt, ich hab dasselbe ohne animation (in einer schleife) ausprobiert. reagieren tut es aber trotzdem falsch: der zweite client (der von server die info bekommt) führt die animation durch. der erste aber nicht.
d.h. beim ersten client wird das elapsed-ereignis nicht ausgelöst.
hat irgendwer ne ahnung wie man das lösen könnte. (ich hoff ich habs einigermaßen verständlich machen können)
Jakob
ich hab folgende angabe:
es soll ein netzwerk-mensch-ärger-dich-nicht programmiert werden. das spielfeld und die kegel sollen in der paint funktion mit ev.graphics.DrawEllipse usw. gezeichnet werden.
das problem ist jetzt das das ziehen animiert sein soll, d.h. wenn ein kegel von feld 6 auf feld 9 zieht, soll er erst auf 7 dann nach 3s auf 8 und dann nach 3s auf feld 9. ich hab versucht das mit einem timer (aus system.timers.timer) zu lösen. also beim elapsed-event immer um eins weiter. wenn ich jetzt aber zwei instanzen des programms auf einem rechner starte, sieht es so aus als ob sich die timer gegenseitig behindern.
zur verdeutlichung die schritte in meinem programm
- zug wird festgelegt (welcher kegel um wieviel felder vorrückt)
- info an server über diesen zug
- start des timers
- bei jedem elapsed um eins weiter
der server schickt die erhaltene info an den anderen client, worauf dieser ebenfalls die animation startet (also den timer).
die logik passt, ich hab dasselbe ohne animation (in einer schleife) ausprobiert. reagieren tut es aber trotzdem falsch: der zweite client (der von server die info bekommt) führt die animation durch. der erste aber nicht.
d.h. beim ersten client wird das elapsed-ereignis nicht ausgelöst.
hat irgendwer ne ahnung wie man das lösen könnte. (ich hoff ich habs einigermaßen verständlich machen können)
Jakob
Comment