Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 09.06.2004, 19:42 Titel: Kleine Frage! |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.06.2004, 19:45 Titel: |
|
|
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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 09.06.2004, 19:49 Titel: |
|
|
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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 09.06.2004, 19:54 Titel: |
|
|
ach lol bin ich dumm, nun hab ich den fehler
ich muss ja auch direct3d.h und sprite.h inkludieren, sonst kanns schwer funzen |
|
Nach oben |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 09.06.2004, 20:08 Titel: |
|
|
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 |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 09.06.2004, 20:27 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.06.2004, 22:31 Titel: |
|
|
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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 10.06.2004, 05:01 Titel: |
|
|
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 |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
|
Nach oben |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 10.06.2004, 13:22 Titel: |
|
|
möglich wäre's das ich's vergessen hab'! werd ich heute abend, wenn ich zu Hause bin, nachprüfen |
|
Nach oben |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 10.06.2004, 16:28 Titel: |
|
|
Yo, daran lag's 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 ! |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.06.2004, 19:28 Titel: |
|
|
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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 11.06.2004, 05:03 Titel: |
|
|
Was meinst du mit "Radiant" ? Was ist das?
Sorry, ist noch so früh ) |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 11.06.2004, 07:18 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 11.06.2004, 07:49 Titel: |
|
|
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 |
|
|
|