|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 10.08.2003, 08:34 Titel: Problem mit Sprites |
|
|
Hallo ich finde keinen Fehler.
Wenn ich das Programm ausfhre zeigt es mir kein Sprite an warum.
In Direct3D.h habe ich die Funktion D3DInit erstellt die zum erstellen der objecte dient.(keine klasse nur eine Funktion);
Was habe ich Falsch geprogt bitte helft mir Danke.
der code
#include <windows.h>
#include "Direct3D.h"
#define FILE_NAME "C:\FIGHTER_TOP.png"
LPD3DXSPRITE lpSprite = NULL;
LPDIRECT3DTEXTURE9 lpSpriteTexture = NULL;
LRESULT CALLBACK WinProc(HWND handle,UINT msg,WPARAM wParam,LPARAM lParam);
HWND WindowCreate(HINSTANCE hinstance);
int WINAPI WinMain (HINSTANCE hInstance ,HINSTANCE hNull,LPSTR lpCmdLine,int nShowCmd)
{
HWND handle;
MSG msg;
handle = WindowCreate(hInstance);
D3DInit(handle);
D3DXCreateTextureFromFile(lpD3DDevice,
FILE_NAME,
&lpSpriteTexture);
D3DXCreateSprite(lpD3DDevice,&lpSprite);
ShowWindow(handle,SW_MAXIMIZE);
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
D3DXVECTOR2 vScaling(1.0f, 1.0f);
D3DXVECTOR2 vRotationCenter(64.0f , 64.0f);
float Rotation = 0.0f;
D3DXVECTOR2 vPosition(250.0f,250.0f);
D3DCOLOR ModulateColor = 0xFFFFFFFF;
lpD3DDevice->Clear(0,0,D3DCLEAR_TARGET,D3DCOLOR_XRGB(250,0,0),0,0);
lpD3DDevice->BeginScene();
lpSprite->Draw(lpSpriteTexture,NULL,&vScaling,&vRotationCenter,Rotation,&vPosition,ModulateColor);
lpD3DDevice->EndScene();
lpD3DDevice->Present(0,0,0,0);
}
return 0;
}
LRESULT CALLBACK WinProc(HWND handle,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_KEYDOWN:
int key;
key = (int) wParam;
switch(key)
{
case VK_ESCAPE:
PostMessage(handle,WM_CLOSE,0,0);
}
break;
case WM_CLOSE:
PostQuitMessage(1);
break;
}
return DefWindowProc(handle,msg,wParam,lParam);
}
HWND WindowCreate(HINSTANCE hinstance)
{
WNDCLASSEX wndclass;
wndclass.cbClsExtra = 0;
wndclass.cbSize = sizeof(WNDCLASSEX);
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_PEN);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon = LoadIcon(NULL,IDI_WINLOGO);
wndclass.hIconSm = LoadIcon(NULL,IDI_WINLOGO);
wndclass.hInstance = hinstance;
wndclass.lpfnWndProc = WinProc;
wndclass.lpszClassName = "WindowClass";
wndclass.lpszMenuName = NULL;
wndclass.style = CS_DBLCLKS;
RegisterClassEx(&wndclass);
return CreateWindowEx(NULL,
"WindowClass","Window",
WS_OVERLAPPEDWINDOW,
0,0,600,800,
NULL,
NULL,
hinstance,
NULL);
} |
|
Nach oben |
|
|
Tomm Junior JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 93 Wohnort: Neuburg an der Donau Medaillen: Keine
|
Verfasst am: 10.08.2003, 18:00 Titel: |
|
|
Kann es ein, dass es an dieser Zeile liegt: Code: | #define FILE_NAME "C:\FIGHTER_TOP.png" | ? Ich denk mal, dass der Compiler das "F" für ein Steuerzeichen hält. Da fehlt der zweite Backslash, also: Code: | #define FILE_NAME "C:\\FIGHTER_TOP.png" |
_________________ Tomato Interactive Homepage
Das Forum von Tomato Interactive |
|
Nach oben |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 10.08.2003, 18:36 Titel: |
|
|
Super Tomm das war mein Fehler Danke.
Aber warum müssen hier zwei \\ hin. |
|
Nach oben |
|
|
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 10.08.2003, 18:40 Titel: |
|
|
Wie Tomm schon gesagt hat. In C++ (und auch schon C??) werden mit \ sogenannte Steuerzeichen begonnen. Dies sind zum Beispiel newline (neue Zeile): \n oder Tabulator: \t.
Damit man nun aber auch in einem Text noch \n schreiben kann, zb. eben bei pfadangaben, muss man den backslash in zeichenketten als \\ codieren.
WICHTIG ZU WISSEN: Der Kompilier fasst \t oder \n oder \\ etc. als EIN zeichen auf, da er es intern vermutlich durch das eine entsprechende zeichen ersetzt, da bin ich mir aber nicht so ganz sicher.
ich hoffe du hast verstanden worum es mir ging! _________________ Es geht auch ohne |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.08.2003, 20:00 Titel: |
|
|
Alternativ kann man auch einfach einen normalen Slash schreiben _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 11.08.2003, 10:39 Titel: |
|
|
Zitat: | Alternativ kann man auch einfach einen normalen Slash schreiben |
ganz der linux-user und internet-freak was?
Aber das stimmt schon. sollte man sich meiner meinung nach auf jeden fall angewöhnen, denn die sache mit dem \\ vergisst man schnell mal, wie man ja oben gesehen hat.
Und dann ist das Geschrei des Debuggers wieder groß oder das Programm funzt ned und keiner weiß warum es nicht funktioniert. _________________ Es geht auch ohne |
|
Nach oben |
|
|
|
|
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
|