AGB  ·  Datenschutz  ·  Impressum  







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

Ballverlauf malen

Ein Thema von NMR · begonnen am 29. Mär 2006 · letzter Beitrag vom 29. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
NMR

Registriert seit: 1. Feb 2006
Ort: Beckum
19 Beiträge
 
#1

Ballverlauf malen

  Alt 29. Mär 2006, 17:00
Hi habe folgendes Prob, ich möchte gern bei meinem Ping Pong, dass er den Ballverlauf mit einem Strich nachmalt.
hier erst mal meein QT

Delphi-Quellcode:
procedure Tpingpong.Timer1Timer(Sender: TObject);
begin
randomize;
   //rechte Seite
  if ((h_dir =1) And (ball.Left >= clientwidth -(ball.Width+9)))
  then begin
    h_dir :=-1;
    h_speed := random (13)+ 1;
   spielerA:= spielerA +1 ;
  end;

    //unten
  if ((v_dir =1)and (ball.Top >= clientheight-(ball.Height+9+20)))
  then begin
     v_dir :=-1;
      v_speed := random (13) +1 ;
      end;

//oben
  if ((v_dir =-1) And (ball.top<=0))
   then begin
   v_dir:=1 ;
    v_speed:= random (13)+1 ;
   end;

//links

  if ((h_dir =-1) And (ball.Left <= 0))
  then begin
    h_dir :=1 ;
    h_speed := random (13)+1 ;
    SpielerB:= SpielerB -1;
  end;



  ball.Left :=ball.Left+h_speed*h_dir;
  ball.Top :=ball.Top+v_speed*v_dir;

  
pingpong.canvas.pen.color := clred ;
pingpong.canvas.moveto(ball.Left,ball.top);
pingpong.canvas.lineto(ball.left ,ball.Height); //<--- Das ist die Stelle wo ich
                                                        // nicht weiter komme.
                                                        
  end;
Angehängte Dateien
Dateityp: exe project1ball_132.exe (377,0 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:01
Editiere doch bitte den obigen Beitrag und nutze die [delphi]CODE[/delphi] Tags: Code ......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
NMR

Registriert seit: 1. Feb 2006
Ort: Beckum
19 Beiträge
 
#3

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:06
jo sry hab ich vergessen
habs geändert
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:13
du musst Form1(in deinem fall Pingpong).Repaint vor dem erneuten zeichenvorgang hinzufügen (dann ist immer nur eine linie )

ah sorry nachzeichnen ist nicht schwer - du musst aber auf jeden fall immer die ganze zeichenfläche imemr speichern und laden damit nicht überzeichnet wird(sry wenns einfacher geht hab n jahr pause gemacht mit delphi ) - auf jeden fall würd ich dir empfehlen eien Paintbox zu machen (gibt hier auch solche tutorials bei grafik in der codelib guck dort mal )
grüße Nico
Nico Müller
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#5

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:16
Da du es so "umständlich" programmiert hast (damit meine ich, so würde ich es nie machen!) ist der einfachere weg nicht benutzbar...
du musst ein array erstellen, welches sich die ganzen positionen von dem ball merkt. wie groß dieses array sein muss hängt von der größe und dem winkel ab in die der ball sich bewegt. dann musst du bei jedem schritt überprüfen ob der ball schon von einem dieser punkte weg ist und dann dort den strich hinmalen. dann musst du diesen punkt wieder löschen, da er ansonsten vielleicht nochmal berechnet wird.
hoffe du hast verstanden was ich sagen möchte ^^


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:24
naja generell könnte er mit canvas.pixels[x,y] := clblack ; auch nachmalen aber eben bild speichern ist wichtig
Nico Müller
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#7

Re: Ballverlauf malen

  Alt 29. Mär 2006, 17:45
@Nicoduis: Das Problem bei dieser Methode ist, dass der Ball ja wieder gelöscht wird und damit auch die Linie die gerade ebend gemalt hat.

Oder man löscht den Kreis, lässt den Strich ziehen, speichert dieses Bild, macht des Kreis wieder hin, löscht ihn wieder weg, lädt das eben gespeicherte bild, zeichnet die neue linie, speichert wieder, ...
(kann auch sein dass du das meintest, Nicoduis)


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
NMR

Registriert seit: 1. Feb 2006
Ort: Beckum
19 Beiträge
 
#8

Re: Ballverlauf malen

  Alt 29. Mär 2006, 19:11
was soll ich denn jetzt änderen ^^ oder machen...
ich weiß das es iwie klappt. Aber wie ahh ich weiß es net mehr ^^ lol auch mit den .canvas.lineto und bla ach ...ah

danke aber schon mal
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Ballverlauf malen

  Alt 29. Mär 2006, 21:02
@flare kreis als shape?
Nico Müller
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#10

Re: Ballverlauf malen

  Alt 29. Mär 2006, 21:07
Keine Ahnung, ich meine mit Kreis das Ding, was du als Ping Pong Ball durchgehen lässt. Ich weiß nicht was in deinem Fall der Ball ist, ob Shape oder TImage oder sonstwas.


Flare
Willy Scheibel
  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 18:28 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