AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bild mit Maus verschieben!

Ein Thema von xxsasch4xx · begonnen am 22. Dez 2010 · letzter Beitrag vom 21. Jan 2011
Antwort Antwort
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#1

Bild mit Maus verschieben!

  Alt 22. Dez 2010, 17:54
Wie kann man mit Delphi ein Spiel programmieren wo man auf ein Bild klicken kann und das in einem bestimmten Feld verschieben kann?
Also wenn man z.B. die Maus nach rechts macht, dass dann zeitgleich auch das Bild nach rechts geht.

http://www.kostenlosespiele-online.c...ario_Game.html
So ähnlich wie bei dem Programm aber erstmal nur für ein einziges Bild.
Ich muss ja irgendwie ein Feld dafür erstellen was die Bewegungen der Maus mit bekommt und demnach reagieren kann.

Oder würdet ihr mir eine andere Programmiersprache als Delphi für solche Spielereien empfehlen?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Bild mit Maus verschieben!

  Alt 22. Dez 2010, 17:57
Schau dir mal die Ereignisse OnMouseDown und OnMouseUp einer TImage-Komponente an, sowie Mouse.Pos (heißt doch so, oder?) bzw. alternativ die Funktion GetCursorPos.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bild mit Maus verschieben!

  Alt 22. Dez 2010, 18:30
Als kleiner Denkanstoß: http://www.delphipraxis.net/140096-f...rschieben.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Bild mit Maus verschieben!

  Alt 22. Dez 2010, 18:51
Klatsch ne Shape (Shape1) auf die Form und füge diesen Code ein...

Delphi-Quellcode:
  TForm1 = class(TForm)
    Shape1: TShape;
    procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
      Y: Integer);
    procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
      Y: Integer);
    procedure Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  private
    { Private-Deklarationen }
  public
    sh1MouseDown: Boolean;
    sh1MousePos: TPoint;
  end;

{...}

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  sh1MouseDown := True;
  sh1MousePos := Point( X, Y );
end;

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if sh1MouseDown then
  begin
    Shape1.Left := Shape1.Left + X - sh1MousePos.X;
    Shape1.Top := Shape1.Top + Y - sh1MousePos.Y;
  end;
end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  sh1MouseDown := False;
end;
Ersetze anschließend Shape mit Image...

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#5

AW: Bild mit Maus verschieben!

  Alt 21. Jan 2011, 15:03
kann man das hier:
Shift: TShiftState; nicht raus lassen?
hab es versucht aber er sagt dann immer dass es nicht gehn würde weil nicht genügend parameter drin sind
aber die shift taste brauch ich ja nicht wirklich warum muss ich sie dann umbedingt deklarieren?
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Bild mit Maus verschieben!

  Alt 21. Jan 2011, 15:06
Weil das Event so deklariert ist. Diese Methoden darfst du nicht per Hand anlegen (falls du es tust, dann müsstest du im OnCreate diese Einzeln den OnX Events des Shapes zuweisen).
Gugg einfach mal beim Objektinspektor!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz