Einzelnen Beitrag anzeigen

Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 13. Jul 2006, 22:44
@luckie

Das ist merkwürdig.

Meine Hauptanwendung ist nonVCL Programmiert und nutzt ein Boolean Array zum merken ob die Tasten gedrückt sind oder nicht.

das geschieht folgendermasen:

Delphi-Quellcode:
Function WndProc(hWnd: HWND; // Handle okna
  message: UINT; // Zpráva pro okno
  wParam: WPARAM; // Doplòkové informace
  lParam: LPARAM): // Doplòkové informace
LRESULT; stdcall;

..

begin

..
Case message Of
    WM_KEYDOWN: Begin
        keys[wParam] := TRUE; // Oznámí to programu

        ..

    end;

    WM_KEYUP: Begin
        keys[wParam] := FALSE; // Oznámí to programu
     
        ..

    end;

..

end;
Die Routine die das dann auswertet:

Delphi-Quellcode:
        // SDLK_Left:
        If Keys[37] And Not Keys[16] Then Begin
          Case CameraRot Of
            0: playerdz := PlayerForce;
            1: playerdx := -PlayerForce;
            2: playerdz := -PlayerForce;
            3: playerdx := PlayerForce;
          End;
        End;
        If Keys[37] And Keys[16] Then Begin
          Keys[37] := false;
          If ReverseCamera Then
            CameraRot := (CameraRot + 3) Mod 4 // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
          Else
            CameraRot := (CameraRot + 1) Mod 4; // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
        End;
        // SDLK_Right:
        If Keys[39] And Not Keys[16] Then Begin
          Case CameraRot Of
            0: playerdz := -PlayerForce;
            1: playerdx := PlayerForce;
            2: playerdz := PlayerForce;
            3: playerdx := -PlayerForce;
          End;
        End;
        // 180° drehung
        If Keys[38] And Keys[16] Then Begin
          keys[38] := false;
          CameraRot := (CameraRot + 2) Mod 4;
        End;
        // 180° drehung
        If Keys[40] And Keys[16] Then Begin
          keys[40] := false;
          CameraRot := (CameraRot + 2) Mod 4;
        End;
        // Camera Drehen
        If Keys[39] And Keys[16] Then Begin
          Keys[39] := false;
          If ReverseCamera Then
            CameraRot := (CameraRot + 1) Mod 4 // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
          Else
            CameraRot := (CameraRot + 3) Mod 4; // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
        End;
Ich weis der Code sieht nicht besonders schön aus. Das liegt daran das ich keine Ahnung von NONVCL Programmierung habe.

Aber bei mir hat es immer wunderbar getan.

Vielleicht erkennst du warum es bei dir nicht geht.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat