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

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

21

20.03.2011, 21:58

oke habs soweit [gelöst] , aber wie krieg ichs jez hin das wenn sich das sprite bewegt ein sound abspielt? hab if(taste gedrückt) sound abspielen allerdings startet der sich 8tausnedmal

Code?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

22

20.03.2011, 22:33

Der Sound startet mehrmals, weil du die Taste wohl in der Move-Funktion abfragst. Wenn dein Spiel mit 30 FPS läuft und du die Taste eine Sekunde lang drückst, wird der Sound pro Frame einmal gestartet, also 30mal ;)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

23

20.03.2011, 23:06

Wie wäre es mit etwas, wie(Pseudo-Code)

C-/C++-Quelltext

1
2
if( taste_gedrückt && sound_wird_noch_nicht_gespielt )
  play_sound();

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

24

21.03.2011, 12:10

momentan is der code so


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
         if(Event.Type == sf::Event::KeyPressed)
            {
                antrieb.Play();
                antrieb.SetLoop(false);
            }
            else
            {
                antrieb.Stop();
                antrieb.SetLoop(true);
            }






wie fragt man den ab ob music.() abgespielt wird?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FreezingEngine« (21.03.2011, 12:18)


Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

25

21.03.2011, 12:24

wie fragt man den ab ob music.() abgespielt wird?


Zur not mit nem eigenen bool

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

26

21.03.2011, 12:59

wie fragt man den ab ob music.() abgespielt wird?

Die SFML hat, meiner Meinung nach, eine sehr schön strukturierte Dokumentation(Bei dem Link darfst du noch selbst auswählen, welche Version du verwendest) und dort findet man egtl. alles, was man wissen muss. Und wenn man wissen will, ob die SFML eine Möglichkeit bietet zu prüfen, ob ein Sound abgespielt wird oder nicht, dann schaut man in dieser Dokumentation nach und findet auf Anhieb diese Funktion.
Damit könntest du es zum Beispiel machen. Oder du erstellst eine eigene Bool-Variable und machst dann so etwas:

C-/C++-Quelltext

1
2
3
4
5
if( is_clicked && sound_is_not_played )
{ 
   play_sound();
   sound_is_not_played = false;
}

Nur so als Beispiel. Allerdings ist die SFML Version deutlich schöner, denn so, wie ich es im Code beschreibe stehst du über kurz oder lang vor dem Problem, dass du prüfen musst, ob der Sound mittlerweile zu Ende ist und ob er ggf. wieder gespielt werden soll. Da würde man dann sowieso auf die SFML-Funktion zurückgreifen. Also mach es am besten gleich...

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

27

26.03.2011, 19:53

jo habs auch so funzt soweit nur halt wenn der sound stoppt hängt es kurz aber krass^^ kann man das ausbessern oder muss ich damit leben?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

28

26.03.2011, 19:57

villt einfach das volumen auf 80 stellen wenn sich der spieler bewegt ansonsten 0 wäre das nich ne idee?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

29

26.03.2011, 20:07

Hi ich bins nochmal und habne frage,
also mache ja ein spaceshooter und bin mit steuerung fertig also langsam beschleunigen , langsam abremsen, richtungsvektor.
jetzt will ich das schießen einbauen also sprite vom schuss selbst hat schonmal gleiche richtung wie schiff und zielt auch in richtige richtung allerdings weiß ich nicht wie ich
den schuss jetzt schneller mache als das Schiff,also der Schuss ist ganze zeit auf der stelle hab dem schuss einfach an den richtungsvektor vom schiff gemacht.
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FreezingEngine« (27.03.2011, 09:30)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

30

26.03.2011, 20:47

Formulier deine Fragen bitte etwas genauer;) Ich vermute jetzt dir gehts darum die Sprite vom Schuss zu bewegen. Du erzeugst die Schusssprite ja mit dem gleichen Winkel wie das Schiff. Die Sprite bekommt jetzt eine Position, die relativ zum Schiff ist. Halt einfach leicht vor das Schiff gesetzt. Du hast ja die Position und gehst einfach ein paar Pixel in die Richtung vom Winkel. Dort ist dann die Position von der Schusssprite. Jetzt musst du die Sprite einfach jeden Frame ein bisschen bewegen. Vom Prinzip einfach wie du das Schiff auch bewegst. Einfach immer in Richtung vom Winkel bewegen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige