Kartenspiel
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
Kartenspiel
Hallo,
ich bin dabei das Kartenspiel DuraK als kleines PC-Game zu machen , natürlich FreeWare^^
und ich wollte halt die Karten die man auf der Hand hat auch anzeigen lassen nur wie löst man es am sinnvollsten? , denn ich kann ja schlecht 36 TImage drauf knallen und diese dann immer verschieben lassen oder?^^
ich hoffe ihr kennt eine elegantere lösung^^
ich bin dabei das Kartenspiel DuraK als kleines PC-Game zu machen , natürlich FreeWare^^
und ich wollte halt die Karten die man auf der Hand hat auch anzeigen lassen nur wie löst man es am sinnvollsten? , denn ich kann ja schlecht 36 TImage drauf knallen und diese dann immer verschieben lassen oder?^^
ich hoffe ihr kennt eine elegantere lösung^^
In den Lazarus Quellen. Du musst nur deine eigene Klasse davon ableiten.
z.B:
Um diesen Code zu testen mache Projekt -> Neues Projekt -> Anwendung. DoppelClicke im Objektinspektor auf OnCreate und OnDestroy dann
ersetze allen Code in Unit1 mit dem obigen. Ersetze den Pfad in LoadFromFile() mit einem Bitmap auf deiner Festplatte und kompiliere.
Tja und weshalb schreibe ich für Eugen den Code?: Training! Jede Frage festigt das Wissen, bloss nicht arrogant werden und meinen man wüsste alles.
Isn't it Christian?
z.B:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
{ TEugenControl }
TEugenControl = class(TCustomControl)
private
fBild1:TBitmap;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Paint; override;
property Bild1:TBitmap read fBild1 write fBild1;
end;
var
Form1: TForm1;
Eugen:TEugenControl;
implementation
{ TEugenControl }
constructor TEugenControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Bild1:=TBitmap.Create;
end;
destructor TEugenControl.Destroy;
begin
Bild1.free;
inherited Destroy;
end;
procedure TEugenControl.Paint;
begin
inherited Paint;
Canvas.Brush.Color:=clwhite;
Canvas.FillRect(BoundsRect);
Canvas.TextOut(10,10,'Kapiert Eugen?');
Canvas.Draw(20,20,fBild1);
end;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Eugen:=TEugenControl.Create(Self);
Eugen.Parent:=self;
Eugen.Width:=Width;
Eugen.Height:=Height;
Eugen.Bild1.LoadFromFile('/home/theo/SI-calendar-2006.bmp');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Eugen.free;
end;
initialization
{$I unit1.lrs}
end.
ersetze allen Code in Unit1 mit dem obigen. Ersetze den Pfad in LoadFromFile() mit einem Bitmap auf deiner Festplatte und kompiliere.
Tja und weshalb schreibe ich für Eugen den Code?: Training! Jede Frage festigt das Wissen, bloss nicht arrogant werden und meinen man wüsste alles.

-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
ach sry das habe ich übersehen , danke jez gehts , mal sehn was sich damit machen lässt dankööö 
und wie kann man jez das Bild verschieben?
ich habe das versucht
bewegt sich kein stück^^

und wie kann man jez das Bild verschieben?
ich habe das versucht
Code: Alles auswählen
Eugen.Bild1.Canvas.MoveTo(25,10);
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
So?
Code: Alles auswählen
Eugen.Bild1.Canvas.Draw(25,10,Eugen.Bild1);
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
so habe jez globale variablen genommen und das geht dann mit dem repaint
nächstes problem , bmp unterstütz kein transparent also muss man ja eine farbe auswählen die dann ausgeschnitten wird stimmts?
ich habe das versucht , aber das bild hatte immer nur die farbe die ich ausgewählt habe
nächstes problem , bmp unterstütz kein transparent also muss man ja eine farbe auswählen die dann ausgeschnitten wird stimmts?
ich habe das versucht , aber das bild hatte immer nur die farbe die ich ausgewählt habe
Code: Alles auswählen
Eugen.Bild1.TransparentColor := $FF0096;
Eugen.Bild1.TransparentMode := tmFixed;
Eugen.Bild1.Transparent := true;