AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ball am Tisch

Ein Thema von Hawkeye4077 · begonnen am 7. Feb 2009 · letzter Beitrag vom 8. Feb 2009
Antwort Antwort
Seite 1 von 3  1 23   
Hawkeye4077

Registriert seit: 7. Feb 2009
10 Beiträge
 
#1

Ball am Tisch

  Alt 7. Feb 2009, 18:36
hi, ich bin hier neu und hab gleich eine frage:
in der schule hab ivh seit einem halben jahr informatik, seit einem vierteljahr arbeiten wir nun mit delphi. eigentlich hab ich damit keine probleme, aber mit dem neuen projekt komm ich einfach nicht klar :
auf einem tisch ( panel) soll sich ein ball ( shape.objekt) bewegen, wenn m an in zwei edit felder werte für left und top eingibt und auf start klickt. hat der ball das ende des "tisches" erreicht, soll er abprallen und nicht aus dem panel verschwinden. ich hab zwar schon einige ideen gehabt und ausprobiert, aber es funktiniert einfach nicht. wenn ich bei edit1 bzw. edit2 werte eingebe und auf start drücke, tut sich nichts.
Meine note hängt davon zwar nicht ab, aber es ärgert mich einfach, dass ich es nicht hinkriege. wenn ich unseren lehrer frage, erklärt er mir nur: Das weiß ich auch nicht, musst du mal ausprobieren.

Könnt ihr mir bitte helfen????
bin für jeden tipp dankbar!!!!
LG Hawkeye4077
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:38
Hallo und Willkommen in der DP

wohin soll sich der Ball denn bewegen? Da so eine Positionsverschiebung ja eine regelmäßig wiederkehrende Aufgabe ist, böte sich IMHO die Verwendung eines Timers an.
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
Hawkeye4077

Registriert seit: 7. Feb 2009
10 Beiträge
 
#3

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:44
hi, der ball soll sich in alle richtungen bewegen, je nachdem welche left und top werte eingegeben werden. einen timer sollen wir nicht benutzen.
danke für die schnelle antwort.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:47
Sry, die Infos sind mir persönlich etwas zu dürftig (soll heißen: kapier ich nicht )
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
Whatever

Registriert seit: 7. Jan 2009
Ort: 127.0.0.1
102 Beiträge
 
#5

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:53
Ich glaube mit den left und top Werten soll die Richtung angegeben werden bzw. die "Schrittgröße".
Wenn ich damit richtig liege wäre das mit einem Timer wirklich am besten zu erledigen oder halt mit Sleep oder einer delay-procedure.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#6

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:58
Zitat:
einen timer sollen wir nicht benutzen.
...wer sagt das ? Der Lehrer, der...
Zitat:
Das weiß ich auch nicht, musst du mal ausprobieren.
...gesagt hat ?

Sollte er noch mal fragen kannst du sagen, mit einem Timer ist das die eleganteste Lösung.

Zur Frage: im TimerEvent OnTimer setzt du dann die Position deines Shapes. Du müßtest noch die Richtung der Bewegung zwischenspeichern und bei Kollision mit dem "Rand" des Panels entsprechend die Richtung ändern. Desweiteren brauchst du noch eine Funktion für den Einfallswinkel und den Ausfallwinkel.

wenn mich nicht alles täuscht gab es hier schon mal was in dieser Richtung. Durchsuche mal die DP nach den Stichworten.



PS: was ich nicht verstehe sind die Werte welche in die Edits eingetragen werden sollen ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Ball am Tisch

  Alt 7. Feb 2009, 18:59
[OT] Diese Sorte Lehrer hab ich gefressen [/OT]
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
Hawkeye4077

Registriert seit: 7. Feb 2009
10 Beiträge
 
#8

Re: Ball am Tisch

  Alt 7. Feb 2009, 19:01
das tut mir leid, ich versuchs nochmal besser zu erklären:
der ball soll sich innerhalb des panels verschieben. außerhalb des panels befinden sich zwei editfelder, in die man zwei zahlen eingeben soll. wenn man dann auf start drückt, soll sich der ball auf diese position begeben. i9ch hoffe, du verstehst, wei ich das meine!?

@deddyH: Ich auch!!!

@ whatever: genau das soll mi den left und top werten angegeben werden. den timer dürfen wir nicht benutzen. was ist denn die sleep bzw. die delay-procedure? das hatten wir in der schule noch nicht. (haben auch kein buch zum nachlesen)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#9

Re: Ball am Tisch

  Alt 7. Feb 2009, 19:08
Zitat:
(haben auch kein buch zum nachlesen)
...Delphi Hilfe
Zitat:
in die man zwei zahlen eingeben soll
3,1215926 oder 1000000000000000 oder 2E4

was für Zahlen ? Bildschirmposition ? Position relativ zum Panel ?

wo nimmst du die Zahlen her ?
  Mit Zitat antworten Zitat
Whatever

Registriert seit: 7. Jan 2009
Ort: 127.0.0.1
102 Beiträge
 
#10

Re: Ball am Tisch

  Alt 7. Feb 2009, 19:24
Sleep unterbricht das Programm komplett was ich aber nicht für sinnvoll halte.
Eine Delay-Procedure sorgt auch für eine Pause stoppt allerdings nicht das komplette Progamm.

Delphi-Quellcode:
procedure TForm1.Delay(time: word);
var
  Start : Integer;
begin
  Start:= GetTickCount;
  while (GetTickCount - Start <= time) do
  Application.ProcessMessages;
end;
Also kannst du z.B. in eine Schleife Delay(verzögerung) einbauen und sie wird "Schrittweise" ausgeführt womit du deine Bewegung erzeugen könntest.

Natürlich ist ein Timer das eleganteste aber dein genialer Lehrer möchte das ja nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 09:06 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