JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Linie ziehen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
peterbub
JLI'ler



Anmeldedatum: 24.07.2005
Beiträge: 109

Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 02:25    Titel: Linie ziehen Antworten mit Zitat

Hallo ich möchte eine Linie ziehen und habe in ein Beispiel aus dem Buch
jetzt...

in der Class DIRECT3D

void CDirect3D::DrawEllipse(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)

kopiert und ein wenig verändert in

CPP:
void CDirect3D::DrawLine(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)
{
    HDC hDC;

    if(FAILED(lpSurface->GetDC(&hDC)))
    {
        DXTRACE_MSG("DC ist nicht verfügbar");
    }
    else
    {

HPEN farbe = CreatePen(PS_SOLID,1,RGB(0,255,255));
SelectObject(hDC,farbe);
MoveToEx(hDC,x1,y1,NULL);
LineTo(hDC,x2,y2);

        lpSurface->ReleaseDC(hDC);
    }
}


geht wunderbar aber nach ca 5 - 10 minuten,
verschwindet der Strich ( wird die selbe Hintergrundfarbe)

bietet d3d andere möglichkeiten oder was mach ich falsch

Gruß peterbub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 40
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 08:52    Titel: Antworten mit Zitat

Hi!

Fünf bis zehn Minuten? Seltsam... Ich hätte jetzt evtl auf Doublebuffering getippt, meine das du den Backbuffer immer schön löschst und so die "alten" Linien nicht neuzeichnest.

Aber du machst ja nicht alle fünf bis zehn Minuten einen Flip! Wink

grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 09:26    Titel: Antworten mit Zitat

Bitte Code-Tags verwenden, sonst guckt sich keiner gerne den Code an.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 10:29    Titel: Antworten mit Zitat

Hast du dafür gesorgt, dass bei der Nachricht WM_PAINT der Strich neu gezeichnet wird?
Und das Surface brav angezeigt wird?
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 11:17    Titel: Antworten mit Zitat

FH
Frage: WAS hat Direct3D mit WM_PAINT zu tun?

Direct3D überlagert die Windows GDI, daher wird WM_PAINT überflüssig
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 11:30    Titel: Antworten mit Zitat

Warum erzeugst du bei jedem Aufruf der Methode DrawLine den Pinsel neu? Recht es nicht, wenn man den einmal erzeugt? Oder du musst ihn wieder freigeben, mit DeleteObject oder so.
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
peterbub
JLI'ler



Anmeldedatum: 24.07.2005
Beiträge: 109

Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 13:14    Titel: Antworten mit Zitat

UI Smile

hab jetzt mal :

Code:

DeleteObject

benutzt und es scheind zu funktionieren.

Aber gibt es keine aderen Funktionen Linien zu ziehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 13:27    Titel: Antworten mit Zitat

peterbub
Gibt diverse Dinge:

1. Bresenhams Linienalgo
2. 2 Vertices und mit den Renderparameter als Linelist
usw.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 14.12.2005, 21:15    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
FH
Frage: WAS hat Direct3D mit WM_PAINT zu tun?

Direct3D überlagert die Windows GDI, daher wird WM_PAINT überflüssig

Ups... Sry

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik 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