Ein paar Fragen zu 2D

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Ronon_Dex

Betreff: Ein paar Fragen zu 2D

BeitragDi, Jan 10, 2012 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hall ihr lieben,
Ich bin es mal wieder.
Da ich einfach viel zu gerne mit neuen Sprachen rum bastle kann ich es einfach nicht lassen gleich nach dem ersten erfolg was ganz anderes zu machen Very Happy (manchmal auch ein Nachteil Confused ).
Jedoch hab ich eingesehen dass ich bei 2D Spielen anfangen muss weil 3D noch zu hoch ist Very Happy

Wenn es nichts ausmacht, stelle ich gleich mehrere fragen Smile

- Wie kann ich Maps erstellen die (scheinbar) endlos lang sind ? (bsp: Klick)
- Wie realisiert man ein Physikalisches herabfallen von Gegenständen, sobald man den Boden oder den Gegenstand unter ihnen entfernt

Das sind bis jetz die 2 Fragen die mir eingefallen sind...
Ich hoffe nur ich nerfe nicht mit so vielen Fragen die ich stelle.

Ich kann doch bestimmt auch noch weitere fragen dann später in diesen Thread hier schreiben oder ?


mfg
Ronon

ZEVS

BeitragDi, Jan 10, 2012 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Wie kann ich Maps erstellen die (scheinbar) endlos lang sind ?

Das Wort "scheinbar" trifft es. Die Map wird erweitert, wo der Spieler hinkommt (Laden, Berechnen oder Kopieren, wobei man letzteres auch anders machen kann).
Zitat:
Wie realisiert man ein Physikalisches herabfallen von Gegenständen, sobald man den Boden oder den Gegenstand unter ihnen entfernt

Physik allgemein am besten mit NooNooPhysics (einfach mal in der Hilfe schauen).
Wenn es dir nur um das Herabfallen geht, dann geht das wie folgt:
1. Fallen prüfen (fällt das Objekt, d.h., ist unter ihm nichts?)
Wenn ja:
2. Fallgeschwindigkeit (am Anfang 0) erhöhen.
3. Fallgeschwindigkeit zum Y-Wert addieren.
Sonst:
2. Fallgeschwindigkeit auf 0 setzen.


Zitat:
Jedoch hab ich eingesehen dass ich bei 2D Spielen anfangen muss weil 3D noch zu hoch ist.

Wie du siehst: Ein schwieriger Satz. 2D ist anders, ob schwieriger, sei jedem selbst überlassen.
ZEVS

Xeres

Moderator

BeitragDi, Jan 10, 2012 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
"Endlos lange Maps" gibt es in verschiedenen Schwierigkeitsgeraden. Wenn es nur in eine Richtung geht, ist das ganz simpel. Wenn man auch zurückgehen können soll, wird es komplizierter.
"Physikalisch korrekt" ist auch immer so eine Sache - man macht es so, dass es gut aussieht, man rechnet nicht mit 9.81 m/s².
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Ronon_Dex

BeitragDi, Jan 10, 2012 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Wenn es nur in eine Richtung geht, ist das ganz simpel.


Funktioniert das auch "ganz simpel" wenn es bergauf und bergab geht ? und vorallem wie funktioniert es ?

Zitat:
"Physikalisch korrekt" ist auch immer so eine Sache - man macht es so, dass es gut aussieht, man rechnet nicht mit 9.81 m/s².


Das meinte ich nicht Very Happy ich meinte einfach nur wie ZEVS es schon erklärt hat ... vielleicht auch noch das es sich bei einseitigem Berühren dreht

Xeres

Moderator

BeitragDi, Jan 10, 2012 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt immer darauf an... Konkrete Fragen geben konkrete Antworten.
Beim Scrollen kann man vor dem Bildschirm die passenden Objekte/Features generieren und wieder löschen, wenn der Spieler daran vorbei ist. Wie genau man das macht, hängt von der übrigen Struktur ab.

Ein Objekt bei keiner Kollision fallen zu lassen ist eine Sache, aber eine ganz andere, den/die Kollisionspunkte zu finden und anhand derer mit Drehpunkt und Drehgeschwindigkeit zu arbeiten.
Wenn man das nicht sehr simpel umsetzt (was dann unnatürlich aussieht und/oder Fehlerhaft ist), hat man schnell ein riesiges Projekt.
Mach als erstes das, was für das Projekt nötig ist, nicht, was einfach nur toll zu haben wäre.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Propellator

BeitragDi, Jan 10, 2012 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Um eine unendliche Map zu erstellen, musst du einen Algorithmus haben welcher dir für eine bestimmte Position Daten ausspuckt, die du zum generieren der Map verwenden kannst.
Siehe dazu:
Fractal Landscape - Wikipedia (EN)
Perlin Noise - Wikipedia (EN)

MfG
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

hazumu-kun

BeitragMi, Jan 11, 2012 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Zur Graviation gilt folgendes:
Code: [AUSKLAPPEN]

Fallbeschleunigung g= 9,81 m/s²
Geschwindigkeit in m/s nach t Sekunden freier Fall: v= t * g
Zurückgelegte Strecke nach t Sekunden freier Fall: s= g/2 * t²
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Propellator

BeitragMi, Jan 11, 2012 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Da er scheinbar eine Simulation von Kräften will, die an einem Körper angreifen, wird ihm das aber nicht viel helfen, hazumu.

Entweder er benutzt vorgefertigte Libraries oder liest sich in Verlet-Physik oder Rigid Bodies ein.
Die Fallbeschleunigung macht noch keine Physikengine.
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.
 

PhillipK

BeitragMi, Jan 11, 2012 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Endlose maps gibt es, wie bereits erwähnt, in "unterschiedlichen Schwierigkeitsgraden"

Wenn es dir um eine 2D sidescrolling map geht, wirds einfacher, als wenns eine pseudo-3d map (bzw eine topdown map mit bewegungsmöglichkeit in alle richtungen) ist.

Die einfachste variante wäre, diverse vorgefertigte mapteile zu nutzen, die mit jedem anderen kompatibel sind (dh sie passen an den rändern zueinander)
Dann würde ich einfach einen X wert (beispiel: Sidescrolling. Pro spielerschritt in eine richtung wird ein wert hochgezählt bzw runtergezählt. Hier hast du dein X) als "Random Seed" setzen (wie genau das bei BlitzBasic nun geht, weiß ich nicht. SeedRand, RandSeed, irgendwie so.). Danach eine zufallszahl von 1 bis Anzahl-Vorgefertigter teile und eins auswählen.

Das sollte in beide richtungen kompatibel sein, sofern du eine gewisse bewegungsrichtung-verschiebung einplanst.
Im idealfall weißt du, das zb 25 "felder" neben dem spieler ein mapteil generiert werden soll. Ist der spieler nun bei X=2000, muss zb X = 2025 erstellt werden.
Ist der spieler auf der anderen seite und auf dem weg zurück, ist er zb bei X = 2050, wovon 25 abgezogen werden (weil auf "der anderen seite" generiert werden soll), wodurch der Seed wieder identisch wird.

Immens schwieriger wird es allerdings, wenn ein mapteil veränderbar ist und später wieder genau so vorgefunden werden soll. Hier kann es bei unsachgemäßer programmierung extreme ramkosten geben.


Also nochmal grob zusammengefasst:

- Unterteile deine map in diverse Sektoren, abschnitte, wie auch immer.
- Gebe den teilen einen festen wert, der für sie eindeutig ist (oder zumindest anders als bei umliegenden teilen ist)
- Nutze einen gesetzten Random-seed um mit Rand() die selben zufallszahlen für gleiche parts zu generieren
- Nutze diese zufallszahl (bzw zahlen, hauptsache du nimmst _immer_ gleichviele zufallszahlen !) um deine Map zu erstellen.


viel glück =)

hazumu-kun

BeitragDo, Jan 12, 2012 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Propellator hat Folgendes geschrieben:
Da er scheinbar eine Simulation von Kräften will, die an einem Körper angreifen, wird ihm das aber nicht viel helfen, hazumu.

Entweder er benutzt vorgefertigte Libraries oder liest sich in Verlet-Physik oder Rigid Bodies ein.
Die Fallbeschleunigung macht noch keine Physikengine.


Dann würde ich entweder eine Physik Formelsammlung zur Mechanik empfehlen oder was selbstgebasteltes.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Jan_

Ehemaliger Admin

BeitragDo, Jan 12, 2012 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
- Wie kann ich Maps erstellen die (scheinbar) endlos lang sind ?


Der Anfang ist im diesen falle Fest, und der Rest berechnet,
Alla Minecraft: Berechnet
Alla GTA: Komplett vorgebaut und nur intelligent geladen und nciht alles gleichzeitig
Alla Mario alles beeits geladen und nur sichtbares dargestellt.

Zitat:
- Wie realisiert man ein Physikalisches herabfallen von Gegenständen, sobald man den Boden oder den Gegenstand unter ihnen entfernt


2 Ansätze Rastern, nach Blöcken oder Vektoren berechnung. Jump and runs wie mario sind meist alla Raster, 3d Spiele fast komplett mit vektoren und spiele, wo es viele schrägen gibt usw. sind auch meistens mit Vektoren gemacht.

Vektorenrechnung sagt dir was?
between angels and insects
 

Ronon_Dex

BeitragSo, Jan 15, 2012 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
PhillipK hat Folgendes geschrieben:
Also nochmal grob zusammengefasst:

- Unterteile deine map in diverse Sektoren, abschnitte, wie auch immer.
- Gebe den teilen einen festen wert, der für sie eindeutig ist (oder zumindest anders als bei umliegenden teilen ist)
- Nutze einen gesetzten Random-seed um mit Rand() die selben zufallszahlen für gleiche parts zu generieren
- Nutze diese zufallszahl (bzw zahlen, hauptsache du nimmst _immer_ gleichviele zufallszahlen !) um deine Map zu erstellen.

Danke das war schonmal sehr hilfreich Smile


Jan_ hat Folgendes geschrieben:

Vektorenrechnung sagt dir was?

Und mit Vektorenrechnungen hab ich nicht wirklich die erfahrung.

Außerdem tut es mir Leid das ich erst so spät antwortete Wink
 

Ronon_Dex

Betreff: Weitere Frage

BeitragSo, Jan 15, 2012 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich diesem Thread eine eher groß "Flächige" überschrift gab stell ich einfach weiterhin meine fragen hier drin Very Happy

Also ich wollte diesmal noch Wissen wie genau ich eine Steuerrung für ein Fahrzeug mache.
Natürlich im 2D bereich.
Ich denke schon das ich Fahrzeug drehen und mit Vektoren arbeiten sollte, doch mir fehlt der richtige Ansatz dazu. Könnt ihr mir etwas auf die Sprünge helfen ?

wäre echt nett Smile

mfg Ron

//Edit ... Mist doppelpost '-.- tut mir Leid war keine Absicht

ozzi789

BeitragSo, Jan 15, 2012 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Topdown? Sidescroller?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

ZEVS

BeitragSo, Jan 15, 2012 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe ich mal aus der Szene gefischt: http://home.arcor.de/inpac/tut1.htm.
Bei Sidescroller gewiss etwas anderes (-> Gravitation, s.o.).

ZEVS
 

Ronon_Dex

BeitragSo, Jan 15, 2012 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank Zevs Smile

Wenn ich weitere Fragen greife ich einfach wieder auf diesen Thread zurück Smile

Ich hoffe dass es dann nicht so Schlimm ist wenn ein Doppelpost dabei ist weil kein Anderer unter meine Bedankung postet o.o


//Edit: Naja das Tutorial funktioniert bei mir kein Meter wie es sollte aber nach ein paar spielereien hab ichs doch noch gerade gebogen mit vielen änderrungen

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group