Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

10.07.2007, 09:43

das dürfte daher schiefgehen, weil dieser code hier in dem fall mmn nt so brauchbar ist:

Quellcode

1
    Setpos (xPos + ((incdecx*speed)*elapsedtime), yPos + ((incdecy*speed)*elapsedtime));


incdecx/-y (der variablen name ist mmn schonmal ziemlich blöde) werden ja nicht auf null gesetzt nach dem durchlauf. du musst die variablen immer vorher auf null setzenl, un wen beide variablen null sind nicht mit incdec multiplizieren. wenn incdec 1 ist kann das noch gut gehen, aber wenn das -1 ist, kommt sicherlich mist raus. wenn das jetzt hier falsch ist, dann beschreib doch bitte mal ruckeln genauer.

12

10.07.2007, 10:37

Nun ich habe mal deine Anmerkungen berücksichtigt und die Variablen nach dem setzten auf 0 gesetzt. (hat aber, wie ich mir schon dachte, leider nichts verändert)


Das Ruckeln kommt meiner meinung nach von dem Wert in elaplsedtime. Der Ball macht auch unterschiedlich weite Sprünge. Also ein Frame is unglaublich groß. Der Rechner arbeitet wie verrückt wenn das "Spiel" läuft. Prozessorauslastung ist laut Taskmanager bei 90% :)

Ich teile den Wert von timeGetTime() durch 1000 um auf Sekunden zu kommen. Naja vll liegts an der Schleife in der WinMain?

Kanns mir nicht erklähren :)

13

10.07.2007, 10:45

normal solltest du auch anfang bis ende des frames messen und nicht imme ram anfang von move messen. ;)

14

10.07.2007, 12:00

ich glaub ich mess die zeit falsch....An welcher stelle muss ich denn die zeit messen?

Hier meine Klasse für die Zeit:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Ctime
{
private:
    DWORD curtime;
    DWORD lasttime;
    DWORD elapsedtime;
public:
    Ctime ();
    DWORD getelapsed () {return elapsedtime;}
    void reset_timer () {curtime = (timeGetTime () / 1000);}
    void update ();
};

Ctime::Ctime ()
{
    curtime = 0;
    lasttime = (timeGetTime () / 1000);
    elapsedtime = 0;
};

void Ctime::update ()
{
    reset_timer ();
    elapsedtime = curtime - lasttime;
    lasttime = curtime;
};

15

10.07.2007, 12:28

am anfang deines mainloops musst du die zeit messen. ;)

16

10.07.2007, 12:40

Hmm ich messe jetz immer am start eines neuen kompletten durchgangs. Aber keine veränderung.....seltsam ist auch dass wenn sich meine Spielerscheibe (bitte an PingPong denken :) ) bewegt, der ball stehen bleibt und umgekehrt. Oo macht mich langsam bisschen wahnsinnig :) Irgendwo is da der Wurm drin. Und so einen Logikfehler zu finden.........



---------------------------Edit---------------------------

Hab das Problem gefunden *trommelwirbel*

Lag am VNC -.-

Ich arbeite an einem anderen Rechner via VNC und naja blöderweise ruckelt da die "grafische Übertragung".......auf sowas soll man mal kommen :)

Mein Ball flitzt jetzt und der Spieler schwebt über das Spielfeld. Wenn ich was annehmbares habe dann zeig ich euch es hier :)

Man brauch ja auch ein paar Lohrbeeren :)

so far....


---------------------------Edit die 2---------------------------

Kleine vorab alpha 1.0 Version, damit ihr seht was Status Quo ist. ;)

*Klick*

17

11.07.2007, 10:42

Entschuldigt den Doppelpost :)

Die Version oben ist jetz mal die erste Stufe des Projekts.

Ich möchte es später durch Netzwekrfunktionalität erweitern, sodass 2 Spieler gegeneinander über das Netzwerk spielen können. (Jeder versucht mit seinem Ball den anderen zu treffen)

Bis dahin muss ich aber erst ein neues Büchlein (800 seiten) über dxplay usw vertiefen :)

Danke für die Hilfe!


so far...
elloran

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

18

11.07.2007, 12:39

Joa, also für ne Alpha schonmal annehmbar ;)

Allerdings hat der Ball bei mir immermal kleine Hänger drin und springt dann bisschen über den Bildschirm bis es wieder normal läuft.

19

11.07.2007, 13:12

Ist mir auch schon aufgefallen....ich denke das liegt an den Special FX....sehr rechenintensiv ;)


Ne ehrlichgesagt hab ich keine Ahnung wieso.....


----------------------Edit--------------------

Wenn ich mit der Maus über das Fenster fahre, während das "Spiel" läuft dann ruckelt der Ball, ansonsten nicht Oo.

Aber die Msg die ich nicht bearbeiten will laufen an den Standarthandler also warum reagiert er auf die Maus?

Werbeanzeige