Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

51

21.05.2007, 09:05

tut mir leid .. aber ich weiss nicht warum ich mir da so schwer tue..

sorry wenn ich mit meinen fragen nerve..
kann gut sein dass ich ein englisch-deutsch problem habe ^^

ich verstehe es anscheinend noch immer nicht..

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void Graphics_RenderImage()
{
    const double pi = 3.14159265;

    POINT Point[3];
    Point[0].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[0].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[1].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[1].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[2].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[2].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));

    int ret;
    ret = PlgBlt(dcBackBuffer, Point, Player.dcPlayerDCs, 0, 0, 24, 24, 0, 0, 0);
} // Graphics_RenderImage()


void Graphics_Flip()
{
    HDC dcRenderTarget;
    RECT rClient;

    GetClientRect(Game.hWndMain, &rClient); // Get client size

    dcRenderTarget = GetDC(Game.hWndMain);  // Get DC of main window


    BitBlt(dcRenderTarget, 0, 0, rClient.right, rClient.bottom, dcBackBuffer, 0, 0, SRCCOPY);

    ReleaseDC(Game.hWndMain, dcRenderTarget);   // Set free main windows DC

} // Graphics_Flip()


PlgBlt() läuft erfolgreich ab.. rückgabewert ist 1, aber trotzdem wird das bild nicht angezeigt..

sorry... :(
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

52

21.05.2007, 09:11

du hast immer noch vorzeichenfehler drin!!!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Graphics_RenderImage()
{
    const double pi = 3.14159265;

    float s = sin(30.0 * pi / 180.0);
    float c = cos(30.0 * pi / 180.0);
    float w = 24 * 0.5f;
    float h = 24 * 0.5f;

    POINT Point[3];
    Point[0].x = 32 - w * c + h * s;
    Point[0].y = 32 - w * s - h * c;
    Point[1].x = 32 + w * c + h * s;
    Point[1].y = 32 + w * s - h * c;
    Point[2].x = 32 - w * c - h * s;
    Point[2].y = 32 - w * s + h * c;

    int ret = PlgBlt(dcBackBuffer, Point, Player.dcPlayerDCs, 0, 0, 24, 24, 0, 0, 0);
} // Graphics_RenderImage()

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

53

21.05.2007, 09:13

Nur so zur Information. Ich hab oben den Quellcode von einem vollständigen Programm gepostet das funktioniert.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

54

21.05.2007, 09:18

@ dot:
sry.. hab nicht darauf geachtet.. is ja egal wo die punkte landen.. zur zeit wäre ich froh wenn da überhaupt was angezeigt werden würde ^^

@ David:

ich hab keine ahnung was da nicht geht

das hier funzt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Graphics_RenderImage()
{
    const double pi = 3.14159265;

    POINT Point[3];
    Point[0].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[0].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[1].x = 0 + ( 24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[1].y = 0 + ( 24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[2].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[2].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));


    TransparentBlt(dcBackBuffer, Player.x_pos, Player.y_pos, 24, 24, Player.dcPlayerDCs, 0, 0, 24, 24, RGB(0, 255, 0));

} // Graphics_RenderImage()



aber das hier nicht..

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Graphics_RenderImage()
{
    const double pi = 3.14159265;

    POINT Point[3];
    Point[0].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[0].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[1].x = 0 + ( 24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[1].y = 0 + ( 24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));
    Point[2].x = 0 + (-24/2 * cos(30.0 * pi / 180.0) +  24/2 * sin(30.0 * pi / 180.0));
    Point[2].y = 0 + (-24/2 * sin(30.0 * pi / 180.0) -  24/2 * cos(30.0 * pi / 180.0));

    PlgBlt(dcBackBuffer, Point, Player.dcPlayerDCs, 0, 0, 24, 24, 0, 0, 0);

} // Graphics_RenderImage()


ich hab keine ahnung wo da der fehler liegt..
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

55

21.05.2007, 09:21

Zitat von »"$nooc"«

is ja egal wo die punkte landen..


lol...

Zitat von »"$nooc"«


das hier funzt:

C-/C++-Quelltext

1
// ...


aber das hier nicht..

C-/C++-Quelltext

1
// ...




um, wenn du einfach nur mit TransparentBlt das Bild hinmalst is klar dass es funzt!?

nimm bitte mal den code so wie ich ihn oben ausgebessert hab. es is immer noch ein vorzeichenfehler drin (falls es dir noch net aufgefallen is: p[0] und p[2] sind bei dir gleich)

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

56

21.05.2007, 09:23

wieso lol? egal wo die punkte landen, das bild wird dann halt verzerrt dargestellt..

es geht ja darum das NULL angezeigt wird..

mit TransparentBlt() packe ich das ganze zeug nur in den Buffer.. erst mit BitBlt() wird das ganze angezeigt..

aber warum kann ich mit TransparentBlt() alles in den Buffer geben, aber nicht mit PlgBlt() .. da gibt er mir nichts in den Buffer damit ich es dann mit BitBlt() anzeigen lassen kann..

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
void Graphics_Flip()
{
    HDC dcRenderTarget;
    RECT rClient;

    GetClientRect(Game.hWndMain, &rClient); // Get client size

    dcRenderTarget = GetDC(Game.hWndMain);  // Get DC of main window


    BitBlt(dcRenderTarget, 0, 0, rClient.right, rClient.bottom, dcBackBuffer, 0, 0, SRCCOPY);

    ReleaseDC(Game.hWndMain, dcRenderTarget);   // Set free main windows DC

} // Graphics_Flip()
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

57

21.05.2007, 09:26

Zitat von »"$nooc"«

wieso lol? egal wo die punkte landen, das bild wird dann halt verzerrt dargestellt..


Zitat von »"dot"«

falls es dir noch immer net aufgefallen is: p[0] und p[2] sind bei dir gleich


es ist eben nicht egal wo deine punkte sind, wenn dein parallelogramm keine ausdehnung hat...

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

58

21.05.2007, 11:53

es war ne schwere geburt, aber es klappt :)

danke leute.. ich hoffe ich hab niemanden auf 180 gebracht mit meinen fragen :lol:
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

59

21.05.2007, 13:33

Zitat von »"$nooc"«

es war ne schwere geburt, aber es klappt :)


was haste jetzt gemacht?

Zitat von »"$nooc"«

danke leute.. ich hoffe ich hab niemanden auf 180 gebracht mit meinen fragen :lol:


schon ok ^^

Werbeanzeige