2D Plattform Jump and Run

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

krux

Betreff: 2D Plattform Jump and Run

BeitragMi, März 16, 2005 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ich suche ne Erklärung, wie man nen 2D Plattfom Game macht
das sind so meine wichtigsten Fragen:

Wie mache ich einen Scrollbaren Hintergrund?
Wie lasse ich am Effektivsten eine Kollisionsabfrage mit dem Huntergrund ablaufen?
Wie mache ich diagonale felder, z.b um ohne zu springen einen hügel hinaufzulaufen?
 

sven123

BeitragMi, März 16, 2005 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun da kommt es einfach darauf an was für eine Art Spiel mit welchem Komplexitätsgrad du machst. Bei einfachen Games reicht es z.B aus wenn du ein Hintergrundbild reinlädst, dir in Variabelen die Position des Spielers merkst und du dann durch eine if-Abfrage ermittelst wann die Spielfigur eine von dir festgelegte Position ereicht,dann bewegst du den Hintergrund und alle Gegenstände wie Hinternisse genau so schnell wie den Hintergrund.Oder du baust einen unsichtbaren Gegenstand ein und prüfst dann den Spieler auf Kollision mit besagtem ´Gegenstand. Tritt die Kollision ein dann kannst du scrollen. Bei komplexeren Spielen(mit vielen Gehenständen) hilft eien Tile-Egine.Per readline in verbindung mit einer for-Schleife liest du einfach ein Zahlenschema aus einer Datei.Jeder Zahl ordnest du dann einen Gegenstand zu.Näheres zu dieser Methode findest du in einem Beispiel im Buch von Réne Maier.
BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,0,1
SetBuffer BackBuffer()
HBild=LoadImage(\"HBild.bmp\")
Spielfigur=LoadImage(\"Sfigur.bmp\")
Gunsicht=LoadImage(\"Gunsicht.bmp\")
Global Hx
Global Hy
Global x
Global y
Global x1
Global x2
Repeat
Cls
DrawImage HBild,Hx,Hy
If KeyDown(key) Then y+1
If KeyDown(key) Then y-1
If KeyDown(key) Then x-1
If KeyDown(key) Then x+1

DrawImage Spielfigur,x,y


If x<300 Then Hx-2
;oder du Prüfst hier auf Kollision mit einem unsichtbaren Gegenstand
If ImagesOverlap(Spielfigur,x,y,Gunsicht,x1,x2) Then Hx-2

Flip
Until KeyDown(1) End



Die Methode ist allerdings sehr unschön aber einfach, und sollte bei kleinen Games auch gut funtzen.Und für die Kollisionen nutzt du einfach immer if imagesoverlap() oder if ImagesCollide()
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Ebola33

BeitragDo, März 17, 2005 3:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Mumpitz sven,
was scrollt denn da ? Question
gar nix. Ausser daß sich der Spieler bewegt is da nix Very Happy
@topic :
Eine Tileengine. Du benötigst eine Tileengine. Und vergiss dieses x1, x2, x3 blabalabla.....
Da sind Arrays das Zauberwort.........
Schick mir ne pn und du krichst n Grundgerüst wenns denn gar net anders geht. Aber du solltest dir im klaren sein daß du bevor du anfängst ein Spiel dieses ausmasses(Scrollbar, Kollisionsabfrage, und Hügelhinaufabfrage Wink ) zu entwickeln wenigstens in den Grundzügen Basic bzw. Blitz Basic zu beherrschen hast.
Fang mal ein bisschen kleiner an, nur Beispiele. Ganze Spiele sind am Anfang nicht nötig/unschaffbar.

Mfg Ebola
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

Jan_

Ehemaliger Admin

BeitragDo, März 17, 2005 8:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Wie mache ich einen Scrollbaren Hintergrund?

BlitzBasic: [AUSKLAPPEN]
DrawImage hintergrund,xpos,ypos

so, nun nur noch die X und die Ypos verschieben, und der HG verschiebt sich.
Zitat:

Wie lasse ich am Effektivsten eine Kollisionsabfrage mit dem Huntergrund ablaufen?

am besten ncith im H-Untergrund
naja, ich empfehle, bei normalen tiles, es in ein Dim zu schreiben, und dann Mathematisch abzufragen.
siehe nächste antwort.
Zitat:

Wie mache ich diagonale felder, z.b um ohne zu springen einen hügel hinaufzulaufen?

so, Aber nach diesen Wunsch, geht das nciht.
hier gibt es nur 3 Möglichkeiten.
1. Pixel auslesen(langsam/ungenau)
2. Tiles Spezivizieren, sozusagen, bei bild "Tile34.bmp" kannst du schräg hochlaufen(ungenau/aufwendig)
3. per Linien das Ganze Level ausbauen.und eine 2D Kollisionsengine schreiben(schnell/ganau/schwer zu programmieren)
between angels and insects
 

David

BeitragDo, März 17, 2005 8:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Jan_ hat Folgendes geschrieben:

naja, ich empfehle, bei normalen tiles, es in ein Dim zu schreiben,


Was spricht gegen Types? Wenn er sein Level in externe Dateien packen will spart das u.U. viel Speicherplatz, außerdem ist die größe des Levels variabler und, und, und...

grüße

Jan_

Ehemaliger Admin

BeitragDo, März 17, 2005 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil er keine erfahrung hat?!
das mit den Speichern, kleiner kommt auf die Level architektur an, hat aber nciht wirklich was mit types zu tuhen, und der Zugriff auf Types ist Langsamer.

Ich persönlich, bevorzuge, Banks bei Tileengines.

Im Beginner Forum, zählt nicht unbedingt, die optimale lösung, wenn der Aufwand zu hoch ist.
between angels and insects
 

David

BeitragDo, März 17, 2005 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Types mögen zwar langsamer sein, haben aber auch eine menge Vorteile!
Und man kann (unter Umständen!) wirklich gut Speicherplatz sparen:

Wenn ein Level 1000x1000 Einheiten groß ist aber nur knapp 1000 Tiles nutzt, belegt man, wenn nur 1 Byte für den Tileindex gespeichert werden soll, 1.000.000 Byte. Wenn man das ganze über Types löst (1 Byte für den Index und 8 Byte für die Position) hätte man nur 9000 Bytes. Das sind knapp 1000 KB die gespart werden können.

grüße

Jan_

Ehemaliger Admin

BeitragDo, März 17, 2005 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja David, ist mir schon klar, wie du das meintest.
Aber, eine Ausfüllung von nur 10% ist eher unglaubwürdig.(kommt natürlich auf die Engine an.)
Ich weiß wie du es meinst, und muss sagen, das es gute ansätzte hat, aber meiner Meinung nach, nicht für dieses Gebiet geeignet ist.
between angels and insects
 

David

BeitragDo, März 17, 2005 12:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Nun, da gehen die Meinungen wohl auseinander! Razz Aber ob das ganze Anfängertauglich ist, darüber lässt sich streiten!

grüße
 

krux

BeitragDo, März 17, 2005 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich lerna Blitz Basic ja noch abert ich lerne schnell denke ich, jedenfalls hab ich erst eine woche, nachdem ich mit Blitzbasic angefangen hab mein erstes game hier veröffentlicht
https://www.blitzforum.de/viewtopic.php?t=9865
und für nach einer woche find ich is dass wohl nen cooles game oda etwa nich?

Rob_

BeitragDo, März 17, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, da hast du recht.
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group