![]() |
Image Koordinaten herrausfinden
Hallo Leute
Ich will die Koordinaten eines Bildes herraus finden. Es geht darum das sich ein Image über das Form bewegt und wenn es am ende angekommen ist soll es sich umdrehen. nur weis ich nicht wie ich dem Image sagen soll wenn es an den Koordinaten angekommen ist das es sich umdrehen soll. HISTHIS |
Re: Image Koordinaten herrausfinden
Guten Morgen,
Du kennst die linke obere Ecke und die Breite des Bildes addiere diese beiden Daten und schaue ob sie größer als linke Ecke Form + Formbreite sind. Grüße Klaus |
Re: Image Koordinaten herrausfinden
Die Koordinaten hast du doch schon?
.Top und .Left .Height und .Width gibt es auch noch Image.Top + Image.Width = unteres Ende des Image (nur etwas Mathe halt) |
Re: Image Koordinaten herrausfinden
Danke für eure Antworten,
aber wie soll ich das in eine Abfrage schreiben? HISTHIS |
Re: Image Koordinaten herrausfinden
Du bewegst doch das Image, in dieser Routine kannst
Du auch die Abfrage machen ob eine Grenze erreicht wurde. Grüße Klaus |
Re: Image Koordinaten herrausfinden
Pseudocode:
Code:
Wenn ((linke Bildseite + Bildbreite) > (Formularbreite - Rand)) oder (linke Bildseite < Rand) dann
horizontal umdrehen; Wenn ((obere Bildseite + Bildbhöhe) > (Formularhöhe - Rand)) oder (obere Bildseite < Rand) dann vertikal umdrehen; |
Re: Image Koordinaten herrausfinden
Delphi-Quellcode:
{Form}.Width = Formularbreite
{Form}.ClientWidth = Formularbreite - Rand ... .ClientHeight |
Re: Image Koordinaten herrausfinden
Mit "Rand" hatte ich ein selbstdefiniertes Offset gemeint, meist will man ja nicht ganz an den Rand stößen.
|
Re: Image Koordinaten herrausfinden
Danke noch mal für eure Antworten habe das jetz so gemacht
//enemys = Das ist das Gegner Bild das steht //enemyw = Das ist das Gegner Bild das sich bewegt Im moment läuft er nur bis zum Rand und fängt wieder von vorne an. Muss erst noch die Bilder bearbeiten die nach links laufen.
Delphi-Quellcode:
if enemyw.left > 600 then
begin enemys.left := enemys.left -30; enemyw.Left := enemyw.Left -30; if enemyw.left <600 then begin while enemyw.left >0 do begin enemys.left := enemys.left -30; enemyw.Left := enemyw.Left -30; end; end; end; HISTHIS |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz