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

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

12

12.11.2011, 00:05

Kann ich es so lösen?:

C-/C++-Quelltext

1
2
3
4
void C_Shot::update(sf::RenderWindow &window,sf::Sprite &sprite)
{
    sprite.Move(0,m_Speed*window.GetFrameTime());
}
Only God can judge me.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

13

12.11.2011, 00:10

Kann ich es so lösen?:

C-/C++-Quelltext

1
2
3
4
void C_Shot::update(sf::RenderWindow &window,sf::Sprite &sprite)
{
    sprite.Move(0,m_Speed*window.GetFrameTime());
}

Naja, was möchtest du denn machen? So verschiebst du die Sprite halt nur um m_Speed * FrameTick auf der y-Achse. Deine Sprite wird halt einfach nur um den Faktor nach oben verschoben, wenn m_Speed positiv ist.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

14

12.11.2011, 00:14

Ich weiß halt auch nicht wie SFML funktioniert. Aber auf jeden Fall steht deine Funktion auf wackeligen Beinen. Falls es nämlich dazu kommen sollte, dass kurze Zeit gar nichts in deinem Renderingcontext passiert, dann kann die Sprite ganz schnell weg sein (über den Fensterrand hinaus).
Hier ein Ansatz:
-Nicht die Geschwindigkeit mit der Zeit der letzten gezeichneten Frames multiplizieren, sondern die Sprite pro Frame bewegen.
-Bau dir ein Gerüst dass deine Sprite nach belieben auf der x- oder y-Achse transformiert.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

15

12.11.2011, 00:25

Ach SFML...

16

12.11.2011, 00:26

Boah ich bin voll am durch drehen, warum funktioniert das hier nicht:

C-/C++-Quelltext

1
2
3
4
void C_Shot::draw(sf::RenderWindow &window,sf::Sprite &sprite)
{
    window.Draw(sf::Shape::Rectangle(0, 0, 10, 10, sf::Color::Yellow));
}
Only God can judge me.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

17

12.11.2011, 00:31

Ach SFML...

SFML ist gut, im Gegensatz zur SDL bietet sie einen relativ hochwertigen Designstandard. Und jetzt hau mal rein, ich habe langeweile und will heute Abend noch was sehen! ;)

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

18

12.11.2011, 00:39

Boah ich bin voll am durch drehen, warum funktioniert das hier nicht:

C-/C++-Quelltext

1
2
3
4
void C_Shot::draw(sf::RenderWindow &window,sf::Sprite &sprite)
{
    window.Draw(sf::Shape::Rectangle(0, 0, 10, 10, sf::Color::Yellow));
}

Lass mich raten... du rufst die Funktion gar nicht auf oder updatest() den Renderingcontext gar nicht?

19

12.11.2011, 00:41

Boah ich bin voll am durch drehen, warum funktioniert das hier nicht:

C-/C++-Quelltext

1
2
3
4
void C_Shot::draw(sf::RenderWindow &window,sf::Sprite &sprite)
{
    window.Draw(sf::Shape::Rectangle(0, 0, 10, 10, sf::Color::Yellow));
}

Lass mich raten... du rufst die Funktion gar nicht auf oder updatest() den Renderingcontext gar nicht?
Stimmt schon, aber selbst das malen eines Shapes funktioniert nicht und ich rufe die Funktion auf:

C-/C++-Quelltext

1
2
C_Shot shot;
shot.draw(app,shuttle);
Only God can judge me.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

20

12.11.2011, 00:45

Boah ich bin voll am durch drehen, warum funktioniert das hier nicht:

C-/C++-Quelltext

1
2
3
4
void C_Shot::draw(sf::RenderWindow &window,sf::Sprite &sprite)
{
    window.Draw(sf::Shape::Rectangle(0, 0, 10, 10, sf::Color::Yellow));
}

Lass mich raten... du rufst die Funktion gar nicht auf oder updatest() den Renderingcontext gar nicht?
Stimmt schon, aber selbst das malen eines Shapes funktioniert nicht und ich rufe die Funktion auf:

C-/C++-Quelltext

1
2
C_Shot shot;
shot.draw(app,shuttle);

Was passiert denn? Und was steht in deinem Code davor und danach? Lad deine Main mal auf codepad.org hoch.

Werbeanzeige