Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 29.03.2004, 18:01 Titel: Entwicklungsfrage.... |
|
|
Hallo zusammen!
Ich habe vor ein Spiel zu proggen, das auf dem Prinzip von Space Crusade basiert (wenn das einer kennt).Für die die es nicht kennen:
Man steuert einen Trupp Space MArines durch Raumschiffe und muss Aufträge erfüllen.das ganze läuft in der Vogelperspektive ab und um das Raumschiff darzustellen, wollte ich Bodenplatten (wie ein Schachbrett ect.) anlegen.
Nun meine Frage: Würdet ihr für jede Bodenplatte ein einzelnes Sprite anlegen(welches dann die Wände bzw Bodenplatten anzeigt) oder gibt es ne bessere Methode, da ich ja bei einem Spielfeld von beispielsweise 25*25 Feldern --> 625 Felder bzw Sprites hätte. Und ich weiss nicht wie sehr das die Performance nach unten drückt
Vielen dank im vorraus
Mfg |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 29.03.2004, 18:13 Titel: |
|
|
Dafür gibts schon nen Begriff: Tile Engine. Du lädst jede Grafik einmal und jede einzelne bekommt eine Nummer. In deinem Map-Array schreibst du dann, welches Tile an welcher Stelle dargestellt werden soll. In einer Schleife kannst du dann erst deine Map rendern und hinterher die Spielfiguren drauf plazieren. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 29.03.2004, 18:15 Titel: |
|
|
ich würd das so machen: du hast nen 2D Array(ind eienm Fall Array[25][25]) in dem abgespeichert ist welches teil auf diese fläche kommt. dann würd ich mit ner forschleife die betreffenden tiles in die betreffenden flächen einer surface zu rendern. wenn du dann die map renderst renderst du einfahch nur die zuvor generierte "map-surface". |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 29.03.2004, 18:16 Titel: |
|
|
dieser schufft war 2mins chnelelr als ich *grrrgrrrr* |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 29.03.2004, 19:05 Titel: |
|
|
danke schön das hilft mir schon mal sehr weiter.......werde mal schauen ob ich's so hinbekomme
ansonsten frage ich nochmal |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 29.03.2004, 21:27 Titel: |
|
|
habe da direkt noch ne frage.........soweit funktioniert das jetzt, ich habe nur folgendes dummes Problem:
void CDirect3D::addBoden (char FILE[25])
{
RECT rect = {x,y,x+32,y+32};
D3DXLoadSurfaceFromFile(m_Spielfeld, l
NULL,
&rect,
FILE,
NULL,
D3DX_FILTER_NONE,
0,
NULL);
}
im Char File sollte jetzt eiegntlich der Dateiname an die Funktion gegeben werden, doch wenn ich das prog ausführe, bleibt der Bildschirm schwarz
wenn ich das mit #define FILE "Boden1.png" z.b mache klappt es aber
wodran liegt das denn? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 29.03.2004, 21:41 Titel: |
|
|
So: !?
void CDirect3D::addBoden (const char *file)
{
RECT rect = {x,y,x+32,y+32};
D3DXLoadSurfaceFromFile(m_Spielfeld, l
NULL,
&rect,
file,
NULL,
D3DX_FILTER_NONE,
0,
NULL);
} _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 30.03.2004, 17:53 Titel: |
|
|
danke für den tip...es klappt nun
habe leider nun wieder ein prob
void CDirect3D::Boden(void)
{
RECT r = {0,0,32,32};
RECT rr = {100,100,612,132};
m_lpD3DDevice->StretchRect(m_TexturenLager,
&r,
m_Spielfeld,
&rr,
D3DTEXF_NONE);
}
in der Oberfläche werden alle Texturen gespeichert die ich brauche.in der Oberfläche Spielfeld wird das Spielfeld zusammengesetzt.eine Textur hat die größe 32*32. wenn ich nun aus der Texturoberfläche eine Textur in die Oberfläche Spielfeld kopiere passiert folgendes:
Sobald ich als zweiten Parameter NULL angebe kopiert er ordnungsgemäß
alle Texturen in die Oberfläche Spielfeld.Sobald ich aber als PArameter &r angebe um nur eine Textur zu kopieren,bleibt der Schirm schwarz,er hat also nix kopiert
Habe echt keinen lan wieso der das nicht macht
Mfg |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 30.03.2004, 19:57 Titel: |
|
|
Debugge mal und steppe durch, dann schau mal was im Rect gespeichert wurde. Meistens ist das dann nur ein dummer kleiner Wertefehler. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 31.03.2004, 04:50 Titel: |
|
|
ja habe den fehler gefunden
so die grafische oberfläche vom leveleditor steht - endlich |
|
Nach oben |
|
|
|