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

GameProggD3D

Frischling

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

11

18.03.2011, 21:54

als hätte er manche Stellen des Buches übersprungen
vor allem das über klassen :D
Programmiere Zombie-Spiel mit nem Freund

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

12

19.03.2011, 00:02

das hier ist Mathe und DAS wird nicht in dem C++ Buch erklärt ;)
also woher soll er es dann wissen...sowas lernt man halt sehr spät erst in der Schule?

hatte auch mal das gleiche Problem: in Blickrichtung schießen
New Project: Operation CityRacer

13

19.03.2011, 00:16

Also wir reden nicht nur von dieser Frage... und so wirklich Mathe brauch man hier für auch nicht umbedingt. Natürlich kann man das ganze Vektor nennen, dann klingts mathematisch, oder aber man nennt es einfach: Ich gebe meinem Schuss eine Startposition, relativ zur Spielerposition, und beweg den Schuss dann einfach bei jedem Frame um einen bestimmten Betrag in x- und y-Richtung. Und wenn ich halt auch in anderen Winkeln als 0°, 45°, 90°, ... schießen will, dann kann ich entweder die nötige Trigonometrie oder ich google.

Gruß
SaRu_

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

14

19.03.2011, 00:29

Außerdem müsste sich dazu doch auch etwas auf der SFML Doku finden lassen, immerhin beinhaltet diese ja eine Vector Klasse aus einem bestimmten Grund.
Wenn er allerdings noch nicht SFML nutzt -> nutze die Macht.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

15

19.03.2011, 00:30

Also wir reden nicht nur von dieser Frage... und so wirklich Mathe brauch man hier für auch nicht umbedingt.

Aber ich halte diese Frage dennoch für berechtigt. Da gab es schon schlimmere ;). Vor allem weil man mit Google zwar manchmal Lösungen findet, aber oftmals kann man es vllt. auch effizienter lösen oder so. Also da kann man durchaus mal in einem Forum nachfragen. Nur fand ich diese Frage etwas unglücklich formuliert(im Vergleich zu Nexxtrons Formulierung).

ich wollt dran erinnern das ich das buch zwar habe aber noch NIE ein blick reingeworfen habe

Mit Verlaub, aber ich weiß nicht, was du uns damit sagen willst. Sonderlich stolz braucht man darauf nicht sein. Zumindest hätte dir das Buch vmtl. bei der ein oder anderen Frage geholfen, wenn du mal hineingesehen hättest ;).

das spiel secure tanks besteht aus wissen das ich mir erfragt,erlesen und selbs beigebracht habe

Ich denke du hast das schon ganz gut sortiert und »erfragt« an die erste Stelle gesetzt :). Natürlich ist es kein Problem Fragen zu stellen und Sachen nicht zu wissen, dafür ist ein Forum ja da, aber wenn es Fragen sind, dir man mit Hilfe eines Programmierbuches oder der SFML-Doku lösen könnte, dann wird es mit der Zeit einfach ein bisschen nervig. Denn letztlich sind die Helfer auch nicht immer die absoluten Alleswisser, sondern die suchen dann für dich den richtigen Beitrag in der Wiki, das richtige Tutorial oder den entsprechenden Eintrag in der Doku und zitieren ihn dann in deinen Fragen. Ein bisschen mehr Eininitiative wäre also durchaus wünschenswert ;).

So und nun begebe ich mich in Bett(nach ner entspannenden Stunde Deep Space (Nine) versteht sich :) (Das lag mir jetzt so auf der Zunge))

16

19.03.2011, 18:33

das hier ist Mathe und DAS wird nicht in dem C++ Buch erklärt ;)
also woher soll er es dann wissen...sowas lernt man halt sehr spät erst in der Schule?

Für Mathe im Zusammenhang mit 3D-Grafik-/Spieleprogrammierung gibt's extra Bücher, wenn man viel in die Richtung machen will, sollte man mal in so eins einen blick werfen, schule hin- oder her, weil die analytische Geometrie so wie sie in der Schule vorkommt, für spieleprogrammierung zu verwenden, ist zwar möglich, aber bei komplexeren sachen nciht so das gelbe vom ei.
Nicht das ich sage, Schule-Mathe wäre Mist oder nicht für sowas zu gebrauchen, aber meiner Erfahrung nach wird da doch sehr auf mathematische Korrektheit (z.B. unterscheidung zwischen punkten und Vektoren) geachtet, mit der man sich mitunter unnötig steine in den Weg legt, da guckt man besser, was Leute schreiben die von Mathe und Spieleentwicklung ahnung haben, schreiben.
Wobei ein ganzes Buch für so ein paar kleinigkeiten schon Overkill ist ;)

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

17

19.03.2011, 21:10

Wie genau macht man einen RichtungsVector?
hab en kleinen carsh kurs gemacht wie das so in etwa mit sinus und cosinus funzt.
aber wie erstelle ich jez ein vector der für ein sprite die richtung bestimmt.

hab im moment ein kleines test projekt gemacht.

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
27
            if (Input.IsKeyDown(sf::Key::Up))
            {
                schiff1.Move(0, -geschw* screen.GetFrameTime());
                schiff1.FlipY(false);
            }
            
            
            if (Input.IsKeyDown(sf::Key::Down))
            {
                schiff1.Move(0,geschw * screen.GetFrameTime());
                schiff1.FlipY(true);
            }



               if (Input.IsKeyDown(sf::Key::Left))
                {
                 angle += 0.00001f;
                 schiff1.Rotate(angle);
                }

            
            if (Input.IsKeyDown(sf::Key::Right))
            {
                angle -= 0.00001f;
                schiff1.Rotate(angle);
            }




bewegt sich zwar noch oben/unten und dreht sich auch einigermaßen richtig.
Finde nix im internet bzw. nix brauchbares.
Villeicht hat jemand damit ja schon erfahrung.
Werd natürlich weiter suchen.
Wollt trozdem mal fragen,
MfG Marcel


edit: erledigt
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »FreezingEngine« (20.03.2011, 18:51)


GameProggD3D

Frischling

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

18

20.03.2011, 11:00

Hat sichs schon erledigt? ^^
Weil am Ende des 2. Richtungsvektor Crash-Kurses, den ich dir gegeben hab, hat sich das Raumschiff doch super bewegt. :)
Programmiere Zombie-Spiel mit nem Freund

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

19

20.03.2011, 13:22

Für einen normierten Richtungsvektor sollte einfach gelten:
§ x = \cos \varphi \\ y = \sin \varphi §

Wobei §\varphi§ der Winkel deiner Rotation ist. Allerdings hängt es natürlich von der Ausgangslage des Sprites ab, was bei meinem Beispiel jetzt ein Sprite wäre, das nach rechts zeigt. Wenn des Sprite bspw. nach oben zeigt, dann verschiebt sich das ganze natürlich und es sollte gelten:
§ x = -\sin \varphi \\ y = \cos \varphi §
Aber die richtige Formel anhand der Ausrichtung deines Sprites zu bestimmen überlasse ich dir. Alles was du letztlich machen musst, ist bei einer Bewegung deine Geschwindigkeit mit diesem Vektor zu multiplizieren und dann eben das Sprite entsprechend zu bewegen. Sollte kein großes Problem darstellen...

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

20

20.03.2011, 21:34

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
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Werbeanzeige