|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 07.11.2003, 15:05 Titel: char* ausgeben |
|
|
Ich will ein char* ausgeben aber des funktioniert nicht mit der Funktion
Code: |
void Draw3DText2(char* Text,int Groese,int Anfangx,int Anfangy)
{
Create3DFont(Groese);
D3DCOLOR TextColor = D3DCOLOR_XRGB(0,0,255);
RECT r={Anfangx,Anfangy,0,0};
nD3D_DEVICE->BeginScene();
D3DFont->DrawText(Text,-1,&r,DT_CALCRECT,TextColor);
D3DFont->DrawText(Text,-1,&r,DT_CENTER,TextColor);
nD3D_DEVICE->EndScene();
nD3D_DEVICE->Present(0,0,0,0);
};
void Create3DFont(int Groese)
{
LOGFONT LogFont={ 0 };
strcpy(LogFont.lfFaceName,"Arial");
LogFont.lfHeight-=Groese;
D3DXCreateFontIndirect(nD3D_DEVICE,
&LogFont,
&D3DFont);
};
|
Wie kann ich des so machen das ich ein char* ausgeben kann
danke |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 07.11.2003, 17:15 Titel: |
|
|
Code: |
//Zeiger auf das Direct3D Interface
LPD3DXFONT m_lpD3DFont;
//Daten für die Schrift
HANDLE m_hFont;
LOGFONT m_lpFont;
GiveTextOut(int x,int y,char *pText,D3DCOLOR Color)
{
//Erstellt ein Rechteck für den Textbereich
RECT Rechteck;
//Gibt die Koordinaten des Anfangs an
Rechteck.left=x;
Rechteck.top=y;
//Läst das Programm (dank DT_CALCRECT) das Rechteck berechnen
m_lpD3DFont->DrawText(pText,-1,&Rechteck,DT_CALCRECT,Color);
//Gibt den txt aus
m_lpD3DFont->DrawText(pText,-1,&Rechteck,DT_LEFT,Color);
}
//Initialisiert die Schrift
Init(LPDIRECT3DDEVICE9 lpDevice,int iHeight,int iWidth,int iWeight)
{
//Initialisiert den Text
memset(&m_lpFont,0,sizeof(m_lpFont));
m_lpFont.lfHeight = iHeight;
m_lpFont.lfWidth = iWidth;
m_lpFont.lfWeight = iWeight;
m_lpFont.lfPitchAndFamily = VARIABLE_PITCH | FF_SWISS;
//Erstellt ein Font handel
m_hFont = CreateFontIndirect(&m_lpFont);
D3DXCreateFontIndirect(lpDevice,&m_lpFont,&m_lpD3DFont);
//Setzt Variablen auf 0
m_fCharCounter=0;
m_bSpezialTextFinisht=false;
} |
_________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 08.11.2003, 13:12 Titel: |
|
|
danke
und ich hab auch gleich noch 2 Fragen
wie kann ich bei Clear ein bestimtes Feld löschen anstat dem ganzen Bildschirm
wie kann ich ein const int* in int umwandeln,
gibts sowas wie sprintf(a,"%d* ",const int*);
danke |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 08.11.2003, 13:18 Titel: |
|
|
MSDN hat Folgendes geschrieben: |
Code: |
HRESULT Clear(
DWORD Count,
const D3DRECT *pRects,
DWORD Flags,
D3DCOLOR Color,
float Z,
DWORD Stencil
);
|
pRects
[in] Pointer to an array of D3DRECT structures that describe the rectangles to clear. Set a rectangle to the dimensions of the rendering target to clear the entire surface. Each rectangle uses screen coordinates that correspond to points on the render target surface. Coordinates are clipped to the bounds of the viewport rectangle. This parameter can be set to NULL to indicate that the entire viewport rectangle is to be cleared.
|
Und zum Umwandeln von int* nach int machst du einfach einen Cast, nichts weiter...
int IntegerVariable=(int) Zeigervariable
thats all _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 08.11.2003, 13:24 Titel: |
|
|
macht man des wie mit RECT bloß das man D3DRECT nimmt oder ? |
|
Nach oben |
|
|
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 08.11.2003, 15:03 Titel: |
|
|
Ich habs jetzt so gemacht nur es funktioniert nicht
Code: |
D3DRECT pRect[4]={100,100,0,0};
nD3D_DEVICE->Clear(0,pRect,D3DCLEAR_TARGET,m_ClearColor,0,0); |
Was hab ich falsch gemacht |
|
Nach oben |
|
|
Hasenfuß Senior JLI'ler
Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 08.11.2003, 15:39 Titel: |
|
|
Vielleicht ohne das [4]? Denn im Rect sind doch schon 4 Elemente und so müsstest du ja dann 4 Rects gemacht haben.
Bin mir da aber nich sicher weil ich D3DRECT nicht kenne, nur das normale. |
|
Nach oben |
|
|
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 08.11.2003, 15:49 Titel: |
|
|
@Hasenfuß
Stimmt danke hat funktioniert
@AFE-GmdG
danke mit int funktioniert und mit Clear funktioniert ja jetzt auch |
|
Nach oben |
|
|
bladegool JLI'ler
Anmeldedatum: 26.08.2003 Beiträge: 127 Wohnort: München Medaillen: Keine
|
Verfasst am: 08.11.2003, 16:10 Titel: |
|
|
Jetzt gibts zwar keine Fehler mehr aber jetzt wird alles gelöscht
wenn ichs so mach
Code: |
D3DRECT *pRect=(10,10,0,0);
nD3D_DEVICE->Clear(0,pRect,D3DCLEAR_TARGET,m_ClearColor,0,0);
|
wenn ichs so mach
Code: |
D3DRECT *pRect=(10,10,10,10);
|
dann kommt der Fehler
initializing' : 'const int' kann nicht in 'struct _D3DRECT *' konvertiert werden
warum
und wie kann ich das Rect so defenieren das nur das gelöscht wird was ich will
danke |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 08.11.2003, 17:38 Titel: |
|
|
Code: |
D3DRECT MeinRechteck;
MeinRechteck.x1=10;
MeinRechteck.y1=10;
MeinRechteck.x2=100;
MeinRechteck.y2=100;
|
MSDN hat Folgendes geschrieben: |
Count
[in] Number of rectangles in the array at pRects. If you set pRects to NULL, this parameter must be set to 0. |
Code: |
nD3D_DEVICE->Clear(1,&MeinRechteck,D3DCLEAR_TARGET,m_ClearColor,0,0);
|
Versuch's mal damit... _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
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
|