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

21

08.07.2006, 11:14

Ok, nun klappts wenn ich anstatt char nen int mache und ne 1 dazu:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double zielPosition = 80.0;
    int zielRichtung = -1;

    m_fXPos = m_fXPos + zielRichtung * ((0.9 * m_fXPos + 0.1 * zielPosition) * (g_pTimer->GetElapsed () / 100) + 0.4);

    if(g_pFramework->KeyDown(SDLK_LEFT))
    {
        zielPosition -= 100.0;
        zielRichtung = -1;
    }
    if(g_pFramework->KeyDown(SDLK_RIGHT)) 
    {
        zielPosition += 100.0;
        zielRichtung = +1;
    }


Aber jetzt is ja das Problem das zielRichtung immer - 1 wird, weil ja alles durchgelaufen wird und dann wieder vor der Zuweisung die Richtung auf -1 gesetzt wird. Wie mache ich das noch?

Anonymous

unregistriert

22

08.07.2006, 11:16

zielRichtung vor der Schleife initialisieren?

23

08.07.2006, 11:18

Zitat von »"DarkRaider"«

zielRichtung vor der Schleife initialisieren?


Ja, bin ich auch gerade draufgekommen :)

Danke an euch. Super Hilfe, jetzt klappts :D

Man bin ich froh, DANKE!

EDIT: Jetzt muss ichs nurnoch schaffen damit die Figur auch hoch und runter geht.

Anonymous

unregistriert

24

08.07.2006, 11:24

@ Das Edit: Das solltest du jetzt alleine schaffen, ist im Grunde genau
das gleiche wie bei links und rechts ;)

25

08.07.2006, 11:25

Zitat von »"DarkRaider"«

@ Das Edit: Das solltest du jetzt alleine schaffen, ist im Grunde genau
das gleiche wie bei links und rechts ;)


Ja, habs schon hinbekommen.

Danke nochmal an euch *freu mich*

26

08.07.2006, 11:31

Aber ein kleines Problem hab ich noch.

Die Figur bewegt sich jetzt so stockig wie ich das will, aber sie bewegt sich zu wenigte Pixel vorwärts. Wie erreiche ich mehr?

C-/C++-Quelltext

1
m_fXPos = m_fXPos + m_zielRichtung * ((0.9 * m_fXPos + 0.1 * zielPosition) * (g_pTimer->GetElapsed () / 100) * 0.4);

Anonymous

unregistriert

27

08.07.2006, 11:59

Mhhh weiß ich jetzt leider auch nicht so genau, aber du musst in der
Rechnung so weit ich weiß irgendeinen Wert erhöhen. Kann sein, dass
es so geht:

C-/C++-Quelltext

1
m_fXPos = m_fXPos + m_zielRichtung * ((0.9 * m_fXPos + 0.1 * zielPosition) * (g_pTimer->GetElapsed () / 100) * 0.8);


EDIT: Am Besten probierst du da mal ein wenig rum, ich kann dir
da als Außenstehender leider nicht besser helfen.

28

08.07.2006, 12:01

Jo genau, das denk ich auch. Aber egal welchen ich erhöhre. Entweder wird der Punkt "flüssig" oder er springt direkt an den Punkt.

Wenn ich es so mach wie du sagst, wird der PUnkt schneller.

Anonymous

unregistriert

29

08.07.2006, 12:06

Mhhhh Wenn du die Zeit rausnimmst, und dann immer um 10 erhöhst
und noch ein Sleep(); Mit reinpackst, dann müsste es gehen, aber
sollte nicht grad die Beste Lösung sein und wenn man Sleep(); benutzt
dann hält alles an, bis die Zeit die angegeben wurde abgelaufen ist...
Ich weiß ja nicht, ob es das ist, was du willst...

Frede

Treue Seele

Beiträge: 259

Wohnort: Hameln

Beruf: Schüler

  • Private Nachricht senden

30

08.07.2006, 12:30

Sleep () ist hier das Dümmste was einem passieren kann ...

Werbeanzeige