JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Problem mit Sprites

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 10.08.2003, 08:34    Titel: Problem mit Sprites Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Tomm
Junior JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 93
Wohnort: Neuburg an der Donau
Medaillen: Keine

BeitragVerfasst am: 10.08.2003, 18:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 10.08.2003, 18:36    Titel: Antworten mit Zitat

Super Tomm das war mein Fehler Danke.
Aber warum müssen hier zwei \\ hin.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Michael
JLI'ler



Anmeldedatum: 20.07.2002
Beiträge: 173
Wohnort: Münster / NRW
Medaillen: Keine

BeitragVerfasst am: 10.08.2003, 18:40    Titel: Antworten mit Zitat

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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.08.2003, 20:00    Titel: Antworten mit Zitat

Alternativ kann man auch einfach einen normalen Slash schreiben Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael
JLI'ler



Anmeldedatum: 20.07.2002
Beiträge: 173
Wohnort: Münster / NRW
Medaillen: Keine

BeitragVerfasst am: 11.08.2003, 10:39    Titel: Antworten mit Zitat

Zitat:
Alternativ kann man auch einfach einen normalen Slash schreiben

ganz der linux-user und internet-freak was? Wink
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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
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