JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Kleine Frage!
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 19:42    Titel: Kleine Frage! Antworten mit Zitat

Also hab ne kleine Frage! hab nen eigenes projekt angelegt, alle libs die man so braucht inkludiert, alle header, und naja! dann hab ich noch die sprite class und die direct3d class vom buch mit reingebracht aber bei der initialisierung der objekte gibts nen fehler! also ich habe das so:

Code:

#include "I_Manager.h"
#include "global.h"
#include <stdio.h>

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

// Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

// Das Fensterhandle
HWND hWnd = 0;


CDirect3D Direct3D;
CSprite Sprite;
CI_Manager Input;

// Win Main funktion und so weiter


an der stelle wo die Objekte angelegt werden , sagt er mir immer:

"
Code:

:\Projekte\IM_Test.cpp(26) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Direct3D'
d:\Projekte\IM_Test.cpp(26) : error C2501: 'CDirect3D': Fehlende Speicherklasse oder Typspezifizierer
d:\Projekte\IM_Test.cpp(26) : error C2501: 'Direct3D': Fehlende Speicherklasse oder Typspezifizierer
d:\Projekte\IM_Test.cpp(27) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Sprite'
d:\Projekte\IM_Test.cpp(27) : error C2501: 'CSprite': Fehlende Speicherklasse oder Typspezifizierer
d:\Projekte\IM_Test.cpp(27) : error C2501: 'Sprite': Fehlende Speicherklasse oder Typspezifizierer
"

naja, das andere sollten folgefehler sein! kann mir jemand helfen?[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 09.06.2004, 19:45    Titel: Antworten mit Zitat

Wenn das da oben alle Header sind die du eingebunden hast dann kann es schon zu diesen Fehlern kommen. Die DirectX Header fehlen, etc.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 19:49    Titel: Antworten mit Zitat

die dx header werden ja in anderen dateien eingebunden, die wiederum indirekt von der main eingebunden werden . selbst wenn ich die dx header noch reinmache, bringt auch nix..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 19:54    Titel: Antworten mit Zitat

ach lol bin ich dumm, nun hab ich den fehler Very Happy

ich muss ja auch direct3d.h und sprite.h inkludieren, sonst kanns schwer funzen Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 20:08    Titel: Antworten mit Zitat

noch ne frage: so sieht meine game loop aus:

Code:

while(msg.message != WM_QUIT)
   {   
        if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
        { 
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        // wenn keine Nachricht vorliegt,
        else
        {
         Direct3D.BeginScene();
           

            int Action = Input.GetInput();
           
            if(Action & MOVE_LEFT)
            {
               Sprite.Move(LEFT);
            }

            else if(Action & MOVE_RIGHT)
            {
             Sprite.Move(RIGHT); 
            }

            if(Action & MOVE_UP)
            {
               Sprite.Move(UP);
            }

            else if(Action & MOVE_DOWN)
            {
              Sprite.Move(DOWN); 
            }

            if(Action & MOVE_FIRE)
            {
               Sprite.Rotate(.1f);
            }
           // Zeichnen des Sprites
            Sprite.Draw();
         
         Direct3D.EndScene();
           
        }
    }


Warum zur Hölle kommt beim start des proggies immer nen speicherfehler:

nbehandelte Ausnahme bei 0x0049b922 in IM_Test.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x00000000.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 20:27    Titel: Antworten mit Zitat

Hmm, mit den COdeabschnitt lässt sich der Fehler wohl schwer finden. Versuchst vielleicht irgendwo auf einer Variable/Zeiger zu zugreifen, die nicht initialisiert wurde oder ungültig ist. Der Initialisierungscode wäre wohl hilfreicher!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.06.2004, 22:31    Titel: Antworten mit Zitat

Wie wärs wenn du mal die Debugversion starten würdest und dann bei der Fehlermeldung auf Debug klickst. Dann müstest du die genaue Codezeile angeziegt bekommen in der der Fehler auftritt. Das würde beim beantworten deiner Frage wesentlich mehr bringen als nur die Gameloop.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 10.06.2004, 05:01    Titel: Antworten mit Zitat

er zeigt mir mit nem gelben pfeil auf diese stelle:
Code:

void CDirect3D::BeginScene(void)
{
    m_lpD3DDevice->Clear(0,0,D3DCLEAR_TARGET,m_ClearColor,0,0); // genau hier drauf
   
    m_lpD3DDevice->BeginScene();
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 10.06.2004, 07:31    Titel: Antworten mit Zitat

hast du vorher auch direct3d::init aufgerufen? also wo das device erstellt wird
_________________
<-- Noch in der Entwicklungsphase: http://www.uranus-entertainment.de -->

Das Spiel zu unserer Schule:

http://www.grabbe-game.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 10.06.2004, 13:22    Titel: Antworten mit Zitat

möglich wäre's das ich's vergessen hab'! werd ich heute abend, wenn ich zu Hause bin, nachprüfen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 10.06.2004, 16:28    Titel: Antworten mit Zitat

Yo, daran lag's Wink Danke!

Nun noch ne Frage:

Ich drehe das sprite mit links in die linke richtung und mit rechts in die rechte. nun möchte ich aber, das bei der vorwärts ( pfeiltaste ) nicht die y position geändert wird, sondern die position relativ zum objekt. also ich meine das so, wenn z.b. christians animierter beispiel cowboy nach links schräg unten guckt und ich vorwärts drücke ( pfeiltaste hoch ), das die position dann entsprechend geändert wird. also müsste bei pfeiltaste hoch die x und y position sich ändern, da er ja schrägrunter "läuft" ! weiß jemand wie ich das bewerkstelligen kann? ich dachte mir schon was mit vektoren, das ich nen vektor auf dem sprite festlege, und das die position relativ zum vektor verändert wird! hab aber ka ob man das so machen kann und wie, evtl. hab ich vektoren noch net so ganz verstanden :I

Also, helft mir ! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.06.2004, 19:28    Titel: Antworten mit Zitat

du willst also dein Sprite in Richtung der Ausrichtung bewegen ?

x=cos(winkel)
y=sin(winkel)

winkel ist dabei die Ausrichtung in Radiant
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 11.06.2004, 05:03    Titel: Antworten mit Zitat

Was meinst du mit "Radiant" ? Was ist das?
Sorry, ist noch so früh Smile)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 11.06.2004, 07:18    Titel: Antworten mit Zitat

radiant ist die winkelangabe zwischen 0-1, nicht 0-360, wenn ich mich recht entsinne...
umrechnen kannst du es so:
rad = deg * pi/180;
deg = rad * 180/pi;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 11.06.2004, 07:49    Titel: Antworten mit Zitat

Wenn man es schon so ausdrücken will, dann entspricht 0 Grad 0 und 360 Grad 2*PI (nicht 1).

Zur Umrechnung können die D3DX-Makros D3DXToRadian() bzw. D3DXToDegree() verwendet werden.

C.


Zuletzt bearbeitet von Christian Rousselle am 11.06.2004, 09:30, insgesamt einmal bearbeitet
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 -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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