JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=97b6c9a437c09f10183d9c71efbe05a0Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

JLI-Fighter
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cschmidt
Mini JLI'ler



Anmeldedatum: 25.05.2003
Beiträge: 2

Medaillen: Keine

BeitragVerfasst am: 15.06.2003, 09:34    Titel: JLI-Fighter Antworten mit Zitat

Hallo,

ich habe das Beispielpogramm JLI-Fighter komplimiert, aber wenn ich es starte, wird das Fenster geladen, aber dann hängt mein PC! Woran könnte das liegen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nEp
Junior JLI'ler



Anmeldedatum: 03.06.2003
Beiträge: 75

Medaillen: Keine

BeitragVerfasst am: 15.06.2003, 13:38    Titel: Antworten mit Zitat

Wahrscheinlich daran, dass er die Bilder nicht findet. Schau mal ob die Verzeichnisangaben stimmen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.07.2003, 21:08    Titel: Bei mir kommt ein Ausnahmefehler! Antworten mit Zitat

Ich hab' mir eben das Buch gekauft und wollte das Beat 'em up Spiel testen.
Doch dieser Ausnahmefehler machte mir einen Strich durch die Rechnung!

JLI_FIGHTER.exe hat ein Problem festgestellt und muss beendet werden. Sad

Was soll ich jetzt tun?

Systeminfo:
Windows XP
DirectX 9.0 (andere Beispielprojekte wie z.B. SkyBox funktionieren.)
RIVA TNT 2 (neue NVidia Treiber)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.07.2003, 21:37    Titel: Antworten mit Zitat

Bei dem Beispiel sind die Pfade nicht okay. GUck mal in die global.h und prüfe, ob LAUF,SCHLAG,STEHEN,TRITT richtig definiert sind. Benenne die Pfade folgendermaßen um:

#define LAUF "../../Media/JLIFighter/korisso_lauf_%s%04d.png"
#define SCHLAG "../../Media/JLIFighter/korisso_schlag_%s%04d.png"
#define STEHEN "../../Media/JLIFighter/korisso_stand_%s%04d.png"
#define TRITT "../../Media/JLIFighter/korisso_tritt_%s%04d.png"

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.07.2003, 21:52    Titel: Danke Antworten mit Zitat

Danke Christian,

für deine schnelle Hilfe!
Very Happy Jetzt funktioniert das Spiel!
Am besten wäre es, wenn man vorher überprüft ob die Bilder verfügbar sind.
Mit einer Fehlerroutine könnten solche Ausnahmefehler verhindert werden. Wink
Naja, das kann ich ja dann noch einbauen Razz

Dummerweise läuft das Spiel mit einer Bildwiederhohlungsfrequenz von 2 bps.
Wird es im Softwarerender Modus ausgeführt Question
<edit>
wird es nicht!
HAL
Aber warum diese geringe Framerate ???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.07.2003, 22:53    Titel: Antworten mit Zitat

Hat die Karte 32 MB?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.07.2003, 23:07    Titel: Antworten mit Zitat

Christian Rousselle hat Folgendes geschrieben:
Hat die Karte 32 MB?

Nein, die Karte ist nicht mehr die neueste.
Sie hat 16 MB.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 05.07.2003, 08:17    Titel: Antworten mit Zitat

Hallo,

das Hintergrundbild + die Animationen passen bei 16 MB nicht komplett in den Grafikkartenspeicher. Es sind mehr als 20 MB.
Sollte aber trotzdem möglich sein, das ganze halbwegs flüssig laufen zu lassen. Kannst du mal probieren, wie viele FPS du hast, wenn du nur den Hintergrund erzeugst und anzeigen läßt.
Dazu muss du das Laden der Texturen für die Player-Sprites:

Code:


   ....

    Player2.SetPlayer(2);
    Player2.Create(Direct3D.GetDevice(),&ResourceManager,8);
    Player2.SetPosition(SCR_WIDTH - 300, SCR_HEIGHT - 256);

/*
    int i;

    char Filename[256];

    // Grafiken für die Spieler laden
    for(i=0;i<16;i++)
    {       
        sprintf(Filename,LAUF,"rot",i);
        ResourceManager.AddTexture(Filename);
        Player1.AddTexture(WALK_LEFT,ResourceManager.GetTexture(Filename));
        Player1.AddTexture(WALK_RIGHT,ResourceManager.GetTexture(Filename));

        sprintf(Filename,LAUF,"blau",i);
        ResourceManager.AddTexture(Filename);
        Player2.AddTexture(WALK_LEFT,ResourceManager.GetTexture(Filename));
        Player2.AddTexture(WALK_RIGHT,ResourceManager.GetTexture(Filename));
    }

    for(i=0;i<6;i++)
    {       
        sprintf(Filename,SCHLAG,"rot",i);
        ResourceManager.AddTexture(Filename);
        Player1.AddTexture(PUNCH,ResourceManager.GetTexture(Filename));

        sprintf(Filename,SCHLAG,"blau",i);
        ResourceManager.AddTexture(Filename);
        Player2.AddTexture(PUNCH,ResourceManager.GetTexture(Filename));
    }

    for(i=0;i<6;i++)
    {       
        sprintf(Filename,STEHEN,"rot",i);
        ResourceManager.AddTexture(Filename);
        Player1.AddTexture(STAND,ResourceManager.GetTexture(Filename));
       
        sprintf(Filename,STEHEN,"blau",i);
        ResourceManager.AddTexture(Filename);
        Player2.AddTexture(STAND,ResourceManager.GetTexture(Filename));
    }

    for(i=0;i<12;i++)
    {       
        sprintf(Filename,TRITT,"rot",i);
        ResourceManager.AddTexture(Filename);
        Player1.AddTexture(KICK,ResourceManager.GetTexture(Filename));

        sprintf(Filename,TRITT,"blau",i);
        ResourceManager.AddTexture(Filename);
        Player2.AddTexture(KICK,ResourceManager.GetTexture(Filename));
    }

    // die Felder mit den Umrissen der Sprites für die Kollisionserkennung berechnen
    Player1.BuildOutlineArrays();
    Player2.BuildOutlineArrays();
*/
    return TRUE;
}


und das Anzeigen der Player Sprites auskommentieren.

Code:


            if(!GamePaused && !NewGame)
            {
                // Eingabe holen
                int Key = InputManager.GetInput();
/*
                // auf Tasten reagieren
                Player1.Move(Key);
                Player2.Move(Key);

                // auf Kollision testen
                if(Player1.TestCollision(&Player2))
                {
                    if(Player1.GetCurrentAnimation() == KICK || Player1.GetCurrentAnimation() == PUNCH)
                    {
                        nHitsPlayer2++;
                    }

                    if(Player2.GetCurrentAnimation() == KICK || Player2.GetCurrentAnimation() == PUNCH)
                    {
                        nHitsPlayer1++;
                    }

                    Direct3D.DrawText("Kollision aufgetreten",10,35,0xFFFFFFFF);
                }

                // Spieler zeichnen
                Player1.Draw();
                Player2.Draw();

                // und animieren
                Player1.Animate();
                Player2.Animate();
*/
            }


Wenn das schnell genug ist, dann sollten wir versuchen, die Sprites nur im AGP-Speicher anzulegen. Momentan wird D3DPOOL_MANADED bei der Erzeugung verwendet. D3DPOOL_DEFAULT ist ev. besser.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 06.07.2003, 10:46    Titel: Antworten mit Zitat

Ich hab da ein ganz anderes Problem bei JLI Fighter. Zwar startet er das Spiel, ganz ohne Probleme und zeigt auch das Hintergrund-bild an. Die Schrift und die Sprites bleiben aber leider im Hintergrund. Woran könnte das liegen???

My System:
2,53 Ghz
512 MB DDR RAM
Radeon 9700 Pro

Felix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 06.07.2003, 11:54    Titel: Antworten mit Zitat

@Christian
Danke für die Hilfestellung! Ich werd es sofort ausprobieren.
Eventuell könnte man DXT Texturen benutzen. Damit mehr Texturen in den Grafikspeicher passen.
Aber das ist nur eine Theorie, welche sich erst anhand der Praxis bewahrheiten wird. Smile
Also heißt es jetzt: testen, testen, testen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 06.07.2003, 13:53    Titel: Antworten mit Zitat

Ich habe es immer och nicht über die 2 bps gekriegt. Crying or Very sad
Obwohl ich die entsprechenden stellen auskommentiert habe und alle D3DPOOL Parameter mit D3DPOOL_DEFAULT ersetzt habe.

Es muss doch eine Lösung geben, oder!?

Ich werde jetzt noch etwas rumprobieren, hoffe aber trotzdem auf weitere Hilfe, falls jemand noch eine Idee hat wie ich das Spiel zum Laufen bringe.

Bin für jeden Tip dankar. Very Happy

<edit>
Als ich alles auf D3DPOOL_MANAGED gestzt hatte hatte ich zwar ca. 85 bps, aber einen Haufen Grafikfehler. Confused
sieh hier -> KLICK_MICH

Ich hätte da übrigens noch eine Frage:
Ich benutze VC++ 6.0 und möchte wissen wie ich den den Buchprojekten die Autohilfe für DirectX 9.0 aktivieren kann.
Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 06.07.2003, 15:46    Titel: Antworten mit Zitat

@Monkey: Hast du auch den Code? Oder nur die ausführbare Datei? Kannst du einen Screenshot machen?

@KI: Das mit den DXT Texturen wird dir nichts helfen, weil die TNT2 soweit ich weiss keine Texturkompression kann. Kannst du mal in der global.h versuchen die Größe auf 800 x 600 oder 640 x 480 zu ändern? Wird es jetzt besser?

Christan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 06.07.2003, 18:18    Titel: Antworten mit Zitat

Wenn ich die Auflösung auf 640*480 verringere, habe ich eine Bildwiederhohlungsfrequenz von ca 5 bps.
Übrigens:
Programme, welche ich mit dem DX9 AppWizard für VC++ erstellt habe, laufen alle flüssig und mit hoher Bildwiederhohlungsfrequenz (ca. 80 bis 85 bps).
Meine D3DX9 AppWizard Settings->
Code:

Render Device = D3DDEVTYPE_HAL
Display Mode = Fullscreen
Resolution = 1024*768
Refresh Rate = 85 hz

Device Settings->
Code:

BackBufferFormat = D3DFMT_X8R8G8B8
StencilBufferFormat = D3DFMT_D16
Multisample Type = D3DMULTISAMPLE_NONE
MultiSample Quality = 0
Vertex Processing = SOFTWARE_VP
Present Interval = D3DPRESENT_INTERVAL_DEFAULT


Der S3TC-Algorithmus zur Texturkompression wurde 1998 mit DirectX 6 eingeführt.
Ich wusste garnicht, dass der TNT2 Chip dieses Feature nicht unterstützt. Sad
Hat die Texturkompressionsunterstützung nichts mit den Treibern zu tun?
Denn von denen habe ich die neuesten. Wink

<edit>Im Klartext:
Das Beat 'em Up Spiel funktioniert immer noch nicht richtig bei mir!
Ich werde es jetzt mal auf einem anderen, schnelleren, besseren Computer testen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 09.07.2003, 11:47    Titel: Antworten mit Zitat

NEWS

Bei meinem Freund läuft das Spiel einwandfrei flüssig bei 85 fps!
Es scheint wirklich ein Problem bei der Speicherverwaltung zu geben.

@Christian
Könntest du mir vielleicht einen Tip geben, wie ich das Spiel auch bei "schlechteren" Computern zum laufen bringe?
Denn ein Spiel dieser Art dürfte ja eigentlich keine großen Anforderungen haben.

Nachtrag:
Ich weiß es ist kein "richtiges" Spiel, sondern nur ein Beispiel für Kollision!
Aber ein ausbaufähiges Beispiel. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 09.07.2003, 13:55    Titel: Antworten mit Zitat

Hallo,

probiere doch mal das Erzeugen/Rendern des Hintergrundes auszukommentieren. Irgendwo ist eine Grafik, die vom Hauptspeicher auf die Grafikkarte kopiert werden soll. Dadurch denke ich, dass es so lange dauert. Was hast du denn für einen Prozessor?

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum