Mathematisches Verständnis
Übersicht

dragomrakBetreff: Mathematisches Verständnis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen,
ich habe einiges über BlitzBasic gelesen und finde es ziemlich spannend. Ich bringe auch Programmierkenntnisse mit ( QBasic, Turbo Pascal, FreeBasic, LibertyBasic, JustBasic ). Das eigentlichr Problem, das sich mir stellt, ist, ob ich die mathematischen Fähigkeiten für Spieleprogrammierung habe, wobei es mir nur um 2D-Spiele geht, die auch durchaus einfach aussehen dürfen. Ich möchte vorerst einmal in Spieleprogrammierung hineinschnuppern, um festzustellen, ob ich es kann und ob es mir Spaß macht. Und jetzt die Frage: Welche mathematischen Kenntnisse benötige ich dazu? Ich war in Mathe früher immer ganz schlecht und habe von Geometrie kaum Ahnung. Nun vermute ich, dass ich das brauche. Wie seht ihr das? Danke für eure Einschätzungen. Grüße, Dragomrak |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst mit jedem beliebigen Mathe-Wissenstand Spiele herstellen. Zum einfachen Bewegen der Figuren werden oft nur die Grundrechenarten benötigt. Das kommt daher, dass bei Spielprogrammierung oft iteriert wird. Das heißt man läßt eine Berechnung 20x laufen anstatt es mit einer kompizierten Formel zu errechnen.
Für Diagonalbewegungen kann es sein, dass Du sowas wie SIN und COS brauchst. Du findest die richtige Verwendung solchen Formel aber bereits oft hier in alten Beiträgen im Forum. Wenn du nicht weiterkommts, stell im Forum eine Frage. Es antwortet immer einer... Viel häufiger benötigt man LOGIK, also sowas wie IF A>B*2 THEN C=5. Da kommen oft sehr verzwickte Codezeile-Ungetüme raus, bis die Spielfigur das macht, was man will. Am allerwichtigsten ist das "Gewusst-Wie". Welcher Befehl bringt mir das gewünschte Ergebnis. Hier hilft nur Erfahrung sammeln und Beispiele anderer studieren. Ich wünsche Dir jedenfalls viel Erfolg und Spaß. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du die 4 Grundrechenarten kennst, die Punkt und Komma Regel beherrschst, und Sachen wie pi, cos, sin keine Fremdwörter sind (wobei letztere schon "gehobener" sind,) dann bist du fit.
Wenn du Spiele programmierst ist "logisches Denken" 99% des Ziels. Und wenn bei denn 1% was fehlt, (zb für eine kleine Physik Spielerei,) dann hilft das BBP oder Google weiter. Diese Formeln sind in jeder Sprache gleich. cu (Mist, Midimaster war schneller) |
||
dragomrak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen,
vielen Dank für eure Antworten. Das macht mir Mut. Dann werde ich es wohl auch hinbekommen und falls nicht, frage ich im Forum nach. |
||
Grüße von Dragomrak |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das kommt alles darauf an, was du vor hast zu machen.
Textgames: Quasi keine Mathematik 2D-Games: Je nach dem, aber mit Grundrechenarten und Trigonometrie (Sin, Cos, Tan, Atan, Atan2) kommt man gut durch 2D-Physik: Hier wird es schon schwieriger, aber hier kommt es auch hauptsächlich auf das richtige Denken an, wie schon angeschnitten. Dazu kommen noch 2D-Vektoren 3D-Games: Hier kommt es stark an, auf die 3D-Engine. In Blitz3D braucht man immer noch nicht mehr, außer wohl noch 3D-Vektoren. Wenn man tiefer in die Materie eintaucht, kommt man nicht um Matrizen/Matrizenmultiplikation rum, ist aber auch halb so wild. 3D-Physik: Das wird schon eher fortgeschritten. Da besser einfach fertige Libraries verwenden. 3D-Effekte: Hier gibt es kein Limit an Schwierigkeit ![]() |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
dragomrak hat Folgendes geschrieben: falls nicht, frage ich im Forum nach.
Gerne ![]() ![]() MfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
dragomrak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist ermutigend. ![]() |
||
Grüße von Dragomrak |
funkmaster5000 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mit diesem Artikel angefangen und halte ihn für eine super Grundlage. Außerdem behandelt er bereits (fast) alles, was für 2D Programmierung am Anfang gebraucht wird - und zwar bereits in den winzigen ersten 3 Abschnitten ![]() Das reicht bereits für ein rudimentäres Rennspiel ohne Kollision in Blitz. Nehmen wir an, du möchtest noch die Kollision berechnen. Wie stellen wir das an? Wir denken uns 2 Vierecke um das Bild der Autos. Wenn sich diese Vierecke zu nahe kommen, kollidieren die Autos. In Blitz gibt es bereits eine eigene Funktionssammlung dafür (RectsCollide/RectsOverlap), aber nehmen wir an, du möchtest es selbst berechnen. Da du bereits ausreichend mit Variblen vertraut sein müsstest, ist alles was du brauchst: Code: [AUSKLAPPEN] ;deklariere die variablen
Viereck1XPosition% = 12 Viereck2XPosition% = 120 Viereck1YPosition% = 200 Viereck2YPosition% = 50 BreiteDerVierecke% = 32 ;pixel HöheDerVierecke% = 32 ;pixel ;prüfe auf kollision If Abs(Viereck1XPosition - Viereck2XPosition) < BreiteDerVierecke And Abs(Viereck1YPosition - Viereck2YPosition) < HöheDerVierecke Then Print "Kollision!" Du siehst also, mit Minus/Plus/Mal/Geteilt und kleiner/größer/gleich stellst du in 2D fast alles an. Der C64 konnte auch nicht viel mehr, in Assembler sogar nicht einmal Mal oder Geteilt. Das musste man ihm beibringen. |
||
dragomrak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gallo Funkmaster5000,
ich danke dir für deine Antwort. Das sieht ja dann schon bewältigbar aus. Ich werde mich zuerst dennoch an etwas Einfacherem versuchen, vielleicht ein Mastermind, an dem ich dann nach und nach die Optik verbessere, wenn die Funktionen laufen. Das ist sicher als Einstieg gar nicht so schlecht. Dann vielleicht Pong oder Snake, um die Grundlagen der Kollisionen zu verstehen. Das scheint mir ein ganz guter Einstieg zu sein. |
||
Grüße von Dragomrak |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group