AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wackeleffekt

Ein Thema von Jazzman_Marburg · begonnen am 4. Mär 2013 · letzter Beitrag vom 4. Mär 2013
Antwort Antwort
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

Wackeleffekt

  Alt 4. Mär 2013, 09:13
Werte Gemeinde.
Für ein Brettspiel platziere ich zu Anfang die Spielsteine auf das Spielbrett. Die Spielsteine sind von TImage abgeleitet, und werden per assign an das Basis-Panel übergeben. Soweit alles prima.
Nun würde ich den Spielsteinen gern einen "Wackeleffekt" verpassen: Wenn sie auf das Spielbrett platziert werden, sollen sie einen wenig nachwackeln. Weiss nicht wie ich besser umschreiben soll -- sowas wie beim iPad: Wenn man dort die Desktop-Icons markiert, dann wackeln sie so fröhlich, oder "zuppeln".
Rein technisch würde ich denken, dass ich die X,Y Koordinate der Spielsteine für kurze Zeit ein wenig verändere -- habe aber keine Vorstellung davon, wie man sowas halbwegs "harmonisch" hinbekommt.

Jemand eine Idee -- oder Hinweise?
Bin für jeden Tipp dankbar.

Lieben Dank
Jazzamn
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.400 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wackeleffekt

  Alt 4. Mär 2013, 09:46
IIRC waren hier ganz nette Beispiele dabei: http://www.delphipraxis.net/150798-a...n-pattern.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
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
291 Beiträge
 
#3

AW: Wackeleffekt

  Alt 4. Mär 2013, 10:19
Das klingt nach Physik .
Ich würde den Spielsteinen Eigenschaften wie Beschleunigung_i, Geschwindigkeit_i, und Ort_i (zweidimensional) geben und diese über einer timergesteuerten Zeit verändern.
Du gibst z.B. der Geschwindigkeit und dem Ort im Augenblick des Spielsteinsetzens Vorgabewerte, und die Beschleunigung ergibt sich dann aus einem Potential, welches sein Zentrum genau im Zentrum der Brettrasterposition hat. Das Potential kannst Du nach der Federgleichung definieren: F_i = D*x_i, also Kraft (Beschleunigung) ist linear abhängig von der Auslenkung, d.h. von der Entfernung des Spielsteins von seiner zentralen Position. Dann schwingt das ganze hübsch.
Um eine endliche Schwingung zu erzeugen, muss noch eine Dämpfung definiert werden. Ab einer gewissen "Kleinheit" setzt Du die Variablen dann alle auf 0, und der Vorgang ist beendet.

Sorry, nicht sehr detailliert, aber so ähnlich würde ich es machen.

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Wackeleffekt

  Alt 4. Mär 2013, 10:25
Ich hab mal für ein Programm eine Wackelfunktion eingebaut, um den Nutzer zu erinnern, dass ich eine Eingabe erwarte. Vielleicht kannst du es abwandeln und für eine Komponente nutzen

Delphi-Quellcode:
procedure ShakeBabyShake(Form: TForm);
var
  iLeft, iTop, iCount: Integer;
const
  wMax = 20;
begin
  with Form do begin
    iLeft := Left;
    iTop := Top;
    for iCount := 0 to 300 do begin
      Left := iLeft + (Random(wMax) - (wMax div 2));
      Top := iTop + (Random(wMax) - (wMax div 2));
      Left := iLeft;
      Top := iTop;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShakeBabyShake(Self);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#5

AW: Wackeleffekt

  Alt 4. Mär 2013, 10:31
procedure ShakeBabyShake(Form: TForm);
Ich lach mich schlapp "ShakeBabyShake" -- das ist genau das, was ich gesucht habe. Damit werde ich mal rumspielen!

Vielen Dank

Vielen Dank Leute, das Alles hilft mir prima!

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Wackeleffekt

  Alt 4. Mär 2013, 10:57
Sehr „harmonisch“ wird es so aber wohl nicht aussehen...
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
291 Beiträge
 
#7

AW: Wackeleffekt

  Alt 4. Mär 2013, 11:24
Sehr „harmonisch“ wird es so aber wohl nicht aussehen...
Da fehlt die Dämpfung und die Folgerichtigkeit der Bewegung.
Man könnte auch permanent Lissajous-Figuren berechnen (da ist das "harmonische" drin) und einfach den Radius mit einer natürlichen Dampfungsfunktion (exp(-ax)) multiplizieren. Ab Auslenkung < Epsilon abschneiden, dann isses wieder endlich.

Man könnte auch mit einer zeitlich umgekehrten Dämpfung einfaden, das wäre dann rundum harmonisch und glatt und hübsch.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.279 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Wackeleffekt

  Alt 4. Mär 2013, 11:32
Armin hatte hier mal eine kleine nette Animation eingebaut.

Wenn FMX eine Option wäre ... dort ist ja die Möglichkeit von Animationen direkt vorgesehen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#9

AW: Wackeleffekt

  Alt 4. Mär 2013, 13:10
Armin hatte hier mal eine kleine nette Animation eingebaut.

Wenn FMX eine Option wäre ... dort ist ja die Möglichkeit von Animationen direkt vorgesehen.
Hmm... das schöne Abprallen vom linken Rand ("ToLeft") ist schon cool.
Aber FMX ist leider keine Option.


Danke & Gruß
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf