AGB  ·  Datenschutz  ·  Impressum  







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

Geschwindigkeit umkehren

Ein Thema von DelphiUser1 · begonnen am 10. Nov 2012 · letzter Beitrag vom 21. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#1

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:39
1.Mir wurde erklärt das "abs" die Richtung absolut umkehrt und irgendwie sinnvoller wäre.
2.ja das ist richtig, ich will es auch gerne alleine schaffen, aber so ganz peile ich es noch nicht.
x und y zeigen die Position auf x und y Achsen an aber geht diese Position jetzt von der Mitte des Kreises aus oder wieso verrechnen wir diese Koordinaten mit der höhe?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:52
Zitat:
Die Kreise bleiben stehen wenn sie jetzt das Objekt berühren...
Der Code mit + with war von Dir und lies darauf schließen dass x und y die linke obere Ecke eines Rechteckes um Deinen Kreis darstellen. Im letzen Post schreibst Du x und y wären die Mitte es Kreises, in diesem Fall bleibst Du bei den Bedingungen zwangsläufig kleben wenn z.B. der rechte Halbkreis den rechten Rand beinhaltet und die Geschwindigkeit klein genug ist.
Hier musst Du einfach die Grenzen Deinen Gegebenheiten anpassen und rechts Width/2 zu x addieren und links statt 0 Width/2 verwenden, entsprechend für die y Koordinaten ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#3

AW: Geschwindigkeit umkehren

  Alt 12. Nov 2012, 00:02
Das Problem war wohl, dass ich mit dem Programm vor Ewigkeiten angefangen habe und mir über x und y nicht mehr im klaren war.
Die beiden variablen werden beim erzeugen des kreises verwendet um einen beliebigen startpunkt zu wählen, das sieht dann so aus:
Delphi-Quellcode:
Kreis [a].x := Kreis [a].radius + random (1000 - 2*Kreis [a].radius);
  Kreis [a].y := Kreis [a].radius + random (500 - 2*Kreis [a].radius);
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Geschwindigkeit umkehren

  Alt 12. Nov 2012, 00:09


Random für x und für y ... ok, dann weißt Du ja wo Du hinfassen musst, wobei gegen eine zufällige Positionierung nichts spricht solange Du weißt worauf sich x und y beziehen ... (z.B. top/left, center ...)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:59
1.Mir wurde erklärt das "abs" die Richtung absolut umkehrt und irgendwie sinnvoller wäre.
Abs = Betrag, was bei einfachen reellen Zahlen bedeutet: "Wenn da ein Minus vor der Zahl ist, mach es weg. Wenn nicht, lass sie so."
Wer auch immer dir das wie du schriebst erzählt hat, wollte dich entweder veräppeln, oder ist definitiv nicht die richtige Person für mathematische Fragen. (Zumal ich nichtmal wüsse, wie man "absolut umkehren" verstehen sollte.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Geschwindigkeit umkehren

  Alt 12. Nov 2012, 01:52
2.ja das ist richtig, ich will es auch gerne alleine schaffen, aber so ganz peile ich es noch nicht.
Dann geh dein Konzept doch nochmal durch. Am besten mit 'nem Stift und 'n paar Blättern Papier. Wichtig ist, dass du dir auch im Kopf visualieren kannst, was im Code passiert und wieso er das macht, was er macht.

Zeichne deine Kreise und deine Objekte, beschrifte sie, zeichne Pfeile, gepunktete Linien um Bewegungen darzustellen ...

x und y zeigen die Position auf x und y Achsen an aber geht diese Position jetzt von der Mitte des Kreises aus oder wieso verrechnen wir diese Koordinaten mit der höhe?
X und Y beziehen sich nicht auf den Mittelpunkt, sondern auf die obere linke Ecke des Sprite-Objekts.

Wenn du also eine Kollision rechts vom Objekt feststellen willst, muss du X + Breite addieren und prüfen, ob sie >= dem X-Wert des Kollisionsobjekts sind.

Wenn du auf eine Kollision links vom Objekt prüfen willst, musst du schauen, ob der X-Wert des Kollisionsobjekts + Breite des Kollisionsobjekts <= dem X-Wert deines Objekts sind.

Denn einem normalen Sprite-Objekt liegt in der Regel immer ein Quadrat zu Grunde, mit dem man arbeitet, auch wenn es einen Kreis darstellt (der Kreis wird dann in das Quadrat gezeichnet).
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#7

AW: Geschwindigkeit umkehren

  Alt 16. Nov 2012, 17:39
So also da bin ich wieder und habe mich direkt mal an die Arbeit gemacht.
X und Y werden wie folgt beschrieben:

Delphi-Quellcode:
 for b := 0 to high(Kreis) do
  begin
    Kreis [b].x := Kreis [b].x + Kreis [b].speedx; //Geschwindigkeit X
    Kreis [b].y := Kreis [b].y + Kreis [b].speedy; //Geschwindigkeit Y
    With Kreis [b] do
    begin
      Left := Kreis [b].x;
      Top := Kreis [b].y;
    end;
Nun zeigen die beiden ja die Position genau so an, wie es notwendig wäre. Wieso funktioniert es nun trotzdem nicht bzw. wieso prallt der Ball mit Bummis Sourcecode falsch ab und bugt rum
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Geschwindigkeit umkehren

  Alt 16. Nov 2012, 17:53
pack das ganze doch mal in ein Zip, so stochern wir im Nebel rum ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Geschwindigkeit umkehren

  Alt 16. Nov 2012, 17:57
Irgendwie hab ich das Gefühl, dass das Ganze bei dir 'n ziemliches Flickwerk ist. Daher nochmal der Tipp: Geh dein Projekt und dein Vorhaben nochmal analytisch durch. Denn wenn du nicht weißt, warum und weshalb etwas geht oder nicht geht, dann weil dir selbst nicht klar ist, was da überhaupt passiert. Und da kommt man dahin, wo wir jetzt sind: Unklare Fragestellung durch unklare Problemformulierung, weil du scheinbar selbst den Überblick irgendwie über das Projekt verloren hast. Oder?

1) for b := 0 to high(Kreis) do Warum 0 to ... und nicht Low(Kreis) to ...?

2)
Delphi-Quellcode:
With Kreis [b] do
    begin
      Left := Kreis [b].x;
      Top := Kreis [b].y;
    end;
Wo wird Width und Height gesetzt?
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#10

AW: Geschwindigkeit umkehren

  Alt 16. Nov 2012, 18:11
Okay alles klar, ich habe den ganzen Kram mal angehängt
Angehängte Dateien
Dateityp: zip ReCreisis.zip (3,49 MB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:24 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