Mathematisches Verständnis
Übersicht BlitzBasic Beginners-Corner
dragomrakBetreff: Mathematisches Verständnis |
Mo, Feb 08, 2016 17:31 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 |
Mo, Feb 08, 2016 18:20 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 |
Mo, Feb 08, 2016 18:23 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 |
Mo, Feb 08, 2016 18:25 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 |
Mo, Feb 08, 2016 19:54 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 |
Mo, Feb 08, 2016 22:47 Antworten mit Zitat |
|
---|---|---|
dragomrak hat Folgendes geschrieben: falls nicht, frage ich im Forum nach.
Gerne sonst wirst dir vor lauter Mathematik-Begriffen doch nur schwarz vor Augen hier. Ich behaupte mal, man kann alleine mit Punkt-vor-Strich sehr viele interessante 2D-Spiele programmieren. Snake oder Tetris zum Beispiel. Kommt auch immer drauf an, welches Ziel du verfolgst. Wenn immer ein bisschen mehr Komplexität dazu kommt, in ganz kleinen Happen, hantierst du im Handumdrehen mit Mathematik, von der du noch nie gehört hast 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 |
Mo, Feb 08, 2016 22:58 Antworten mit Zitat |
|
---|---|---|
Das ist ermutigend. Danke. Da ich erst einmal nur schnuppern möchte und dann sehen werde, wie weit ich komme, ist das ein Anfang, der optimistisch klingt. Fein.! Das, was ich im Auge habe, sind Retrogames, wie man sie auf den C64 hatte oder auch auf dem Amiga. Das ist optisch nicht so komplex. | ||
Grüße von Dragomrak |
funkmaster5000 |
Mi, Feb 10, 2016 20:48 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 |
Mi, Feb 10, 2016 21:13 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 BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group