Pokerspiel



  • Ich weiß nicht genau, ob ich hier richtig bin, ich will auch ein Kartenspiel programmieren, den Programmablauf habe ich in Pascal programmiert, ja ich weiß komisch aber wahr.
    Mit TurboPascal direkt kann ich aber nichts grafisch darstellen, deshalb greife ich auf API-Funktionen zurück.

    Zum Kartenspiel: ich hätte gern einen Tisch in der Mittee des Fenster, auf dem karten sind. und um den Tisch ständig aktualisierende Texte.

    Soweit bin ich:

    {$APPTYPE GUI}
    program Kartenspiel;
    
    uses
      Windows,Wincrt;
    
    {$r name.res}
    
    const
      AppName = 'Kartenspiel';
    
    var
      AMessage: Msg;
      hWindow: HWnd;
      dcWindow : HDC;
    
    PROCEDURE Throw(throw_string : pChar);
    begin
    
      MessageBox(0, throw_string, 'Error', MB_OK);
      Halt(0);
    
    end;
    
    FUNCTION WindowProc(Window: HWnd; AMessage, WParam,
                        LParam: Longint): Longint; stdcall; export;
    
    begin
    
      WindowProc := 0;
    
      case AMessage of
    
        WM_ACTIVATE:
          begin
          end;
    
        WM_PAINT:
          begin
    	dcWindow := GetDC(hWindow);
    
            RoundRect(dcWindow,0,0,600,300,100,100);
    
            TextOut(dcWindow, 50, 1, 'Einfache Textausgabe!', 21);
    
    	ReleaseDC(hWindow, dcWindow);
          end;
    
        WM_DESTROY:
          begin
             PostQuitMessage(0);
             Exit;
          end;
    
      end;
    
      WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
    end;
    
    PROCEDURE WindowRegister;
    var
      WindowClass: WndClass;
    begin
      WindowClass.Style := cs_hRedraw or cs_vRedraw;
      WindowClass.lpfnWndProc := WndProc(@WindowProc);
      WindowClass.cbClsExtra := 0;
      WindowClass.cbWndExtra := 0;
      WindowClass.hInstance := system.MainInstance;
      WindowClass.hIcon := LoadIcon(system.MainInstance,makeintresource(1));
      WindowClass.hCursor := LoadCursor(0, idc_Arrow);
      WindowClass.hbrBackground := GetStockObject(WHITE_BRUSH);
      WindowClass.lpszMenuName := nil;
      WindowClass.lpszClassName := 'WinClass';
    
      if RegisterClass(WindowClass) <> 0 = false then Throw('Could not Register Window!');
    end;
    
    PROCEDURE WindowCreate;
    begin
      hWindow := CreateWindow('WinClass', AppName,
                  ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
                  cw_UseDefault, cw_UseDefault, 0, 0, system.MainInstance, nil);
    
      if hWindow <> 0 then begin
        ShowWindow(hWindow, CmdShow);
        UpdateWindow(hWindow);
      end;
    
      if longint(hWindow) = 0 then Throw('Could not create Window!');
    end;
    
    begin
    
      WindowRegister;
      WindowCreate;
    
      while GetMessage(@AMessage, 0, 0, 0) do begin
        TranslateMessage(AMessage);
        DispatchMessage(AMessage);
      end;
      Halt(AMessage.wParam);
    
    end.
    

    Nicht viel aber schon mal der umriss des Tisches, als abgerundetes Rechteck.
    Jetzt könnt ihr mir sicher auch sagen, ob ich hier im Forum richtig bin.

    Fragen: Wie kann ich das Rechteck nun mit Farben ausfüllen?



  • Falsches Forum, nur für C/C++ ...



  • CodeFinder schrieb:

    Falsches Forum, nur für C/C++ ...

    Quatsch...



  • Mach die Graphic mit Bitmaps und zeig diese an. Das ganze mit irgendwelchen Zeichenfunktionen zusammenzufrimeln ist viel zu aufwendig.


Anmelden zum Antworten