Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 22.09.2006, 19:31 Titel: tile maps |
|
|
Hallo kennt jemand ein gutes tut wo beschrieben wird wie das genau mit den tilemaps funktioniert
ich habe darüber noch nicht viel gefunden
oder eine andere möglichkeit maps für ein 2D spiel zu erstellen |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 22.09.2006, 22:21 Titel: |
|
|
Ja, du musst deine Frage schon genauer stellen, ich schätze mal du wolltest die programmierung wissen und nicht wie man kachelbare tiles erstellt, oder?
Also, rein porgrammiertechnisch sind Tilemaps doch eignelihc das einfachste, was man machen kann. Ein 2 dimensionales Array einer Struktur die Informationen speichert. Also z.b. was für Bild dargestellt wird, ob Kollision stattfindet usw.
Wo genau ist das Problem? Die Theorie ist doch eignelihc simpel und die Implementation nicht viel schwieriger. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 22.09.2006, 23:29 Titel: |
|
|
nunja ich kenne mich mit tiles überhaupt nicht aus ich weiss eben nur dass man damit 2D maps erstellen kann gibt es vieleicht ein beispielprojekt oder sowas wie man die map erstellt und wieder ausliest also rendert
gibt es bei directx bestimmte funktionen zu tiles |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 23.09.2006, 07:32 Titel: |
|
|
nein.
Das ganze ist quasi so Elementar, das man keine Funktionen oder so dafür braucht.
Ok, ich zeigs dir mal gerade:
CPP: | //die struktur
struct Tile
{
Textur Bild;
bool Kollision;
}
//die Tilemap
Tile[20][30] Tilemap;
//rendern
for(int x=0; x< 20; ++x)
{
for(int y=0; y<30; ++y)
{
Render(Tilemap[x][y].Bild, x*32, y*32);//32 ist die größe eines Tiles
}
}
//klicktest, z.b. fürn editor
int MausX, MausY;
MausX/=32;/durch int fallen nachkommastellen weg
MausY/=32;//s.o
Tilemap[MausX][MausY].Bild=AktuellAusgewaehltesBild;
|
So, Kollision geht ähnlich, musst die halt n bisschen überlegen wie du das machen willst. Am einfachsten ist es natürlich wenn deine Figur nur ganze Tileschritte gehen kann, aber das ist ja doof.
Ansonsten klappt es schon, wenn man die 4 Eckpunkte des Spielersprites jeweils testet, ob die in nem Kollisionsteil drinne sind oder net, aber das kann man sicher noch optimieren. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 24.09.2006, 11:13 Titel: |
|
|
naja ich bekomm das irgendwie nicht in den griff im internet findet man auch nicht viel darüber hat vieleicht jemand ein beispielprojekt für eine tilemap |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 24.09.2006, 12:47 Titel: |
|
|
Ich meine, ich hab dir doch wesentliche Codeteile gezeigt, und die Theorie erklärt, oder? hast du den schon mal versucht das so in der Art umzusetzen? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 24.09.2006, 12:55 Titel: |
|
|
Super danke das hilft mir weiter ich konnte mir das nicht so richtig vorstellen wie es funktionieren soll
danke nochmals |
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 28.09.2006, 14:55 Titel: |
|
|
Hallo ich habe noch ein kleines problem mit der Collision und zwar mach ich das mit der Tilemap wie es Maxim beschrieben hat und mein Player wird über die Spriteklasse geladen nur bekomme ich jetzt keine Collisionserkennung hin und zwar möchte ich einem bestimmten Tile den Boden zuweisen aber das klappt nicht so momentan fällt mir der Spieler nicht nach unten heraus da ich eben die Maximale y Position festgelegt habe wie kann ich das jetzt auf ein Tile übertragen vieleicht könnt ihr mir da einen Tipp geben Danke |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 28.09.2006, 18:24 Titel: |
|
|
Super Danke
kann ich eigentlich auch jedem Tile eine Eigenschaft zuweisen
und wie kann ich es am einfachsten lösen wenn ich eine eigene Klasse für die Tilemap habe und eine Klasse für den Spieler denn mein Spieler ist animiert und deshalb benutze ich unterschiedliche Draw Funktionen |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 28.09.2006, 18:43 Titel: |
|
|
Eigenschaften für Tiles kannst du leicht einbauen, indem du anstatt einen Zahl-Array einen Array aus Strukturen erstellst.
CPP: | // nicht so
unsigned int map[10][10];
// sondern
//die struktur
struct Tile
{
Textur Bild;
bool Kollision;
unsigned int Geschwindigkeit; // deine Eigenschaft
}
//die Tilemap
Tile[10][10] Tilemap;
|
Wenn du jetzt schauen willst ob Tile auf auf der X,Y Position passierbar ist, dann machst du es so:
CPP: | if(Tilemap[y][x].Kollision)
// Kollision |
Die Geschwindigkeit kannst du genau so auslesen. Einfach mal probieren.
Zu den Draw-Funktionen: es ist doch kein Problem wenn du mehrere davon hast. Du musst nur schauen, dass du BeginScene und EndScene nur ein mal aufrufst. |
|
Nach oben |
|
|
Andy-Mad Mini JLI'ler
Alter: 43 Anmeldedatum: 18.09.2006 Beiträge: 34
Medaillen: Keine
|
Verfasst am: 28.09.2006, 21:45 Titel: |
|
|
Super dank dir ich habe gedacht dass es unsauber ist mehrere Draw Funktionen zu benutzen ich werde das mit den Tiles mal ausprobieren danke für die Hilfe |
|
Nach oben |
|
|
|