Bildschirmschoner
Ich bin gerade dabei mir mein eignenden Schoner zu programmieren.
Nun komme ich aber nicht mehr weiter, folgendes..jeder kennt doch den Schoner von Windows.Ich glaub der heißt 3D-Objekt oder so na ja der, der sich von einer Seite zur anderen Seite des Bildschirmes bewegt.Also in allen Richtungen prallt. Hier was ich zur Zeit Habe
Code:
kann mir da jemand helfen?
var
Form1: TForm1; vx: Integer = 1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Form1.DoubleBuffered:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left:=Image1.Left +vx; if Image1.Left>ClientWidth - Image1.Width-1 then vx:=vx*-1; if Image1.Left<1 then vx:=vx*-1; end; Danke im vorraus |
Hallo City Light,
vielleicht solltest Du uns verraten was denn genau nciht geht. Welche Zeit hast Du im Timer eingestellt? Grüsse, Daniel :hi: |
Hi Daniel
Nun Ich wollte ein Bild im meinen Schoner einbauen, und der sollte kreuz und quer auf dem Monitor umherwandern Den Timer habe ich auf 10 gestellt |
Hi,
was es machen soll hab ich kapiert, aber nciht was das Problem ist. Was passiert oder was passiert nicht? Stellt den Timer mal auf 100 oder 200ms. Probiere es aus. Alles was unter 50ms ist, ist für Windows eine reinen Tortur und Du kannst froh sein, wenn da überhaupt sich was bewegt. Versuch doch mal mit 5 oder 10ms eine Message anzuzeigen. Bei mir ist Windows mit solchen Zeiten schonmal abgestürtzt. Windows ist nunmal KEIN Echtzeitbestriebssystem. Das darfst Du nciht vergessen. Grüsse, Daniel :hi: |
Ich habs jetzt auf 100ms gestellt und siehe da es bewegt sich von link nach rechts :bounce2:
Nun wie bekomme ich aber das es sich in allen Richtungen bewegen kann :?: |
Hi,
ich habe es soeben ausprobiert. Es bewegt sich von links nach rechts. Na Toll. :roll: :wink: Das wollte ich wissen, man muss ja nciht immer alles selber ausprobieren. Übrigens, bei mir läuft es im prinzip auch mit 10ms. Jedoch ruckelt es arg stark. Nciht unter 50ms, dann sieht es gut aus. Ich werkel mal ein bisschen dran. Wenn Du möchtest das es sich in allen Richtungen bewegt, dann muss man da mit Randomize arbeiten und nciht mit festen links, rechts angaben, bringt ja nichts. Grüsse, Daniel :hi: |
Danke für deine Hilfe :D
ein Code schnipzel wäre echt prima da ich noch nicht so den Umgang mit Delphi habe Ich kann warten :hello: :spin: |
Hi City Light,
wen du willst, dass das Bild "kreuz und quer" herumfliegt, dann musst du auch eine Bewegung für die y-Richtung einbauen.
Code:
Wenn das Image in einem anderen Winkel fliegen soll, dann musst du nur den Startwert von vx bzw. vy ändern.
var
Form1: TForm1; vx: Integer = 1; vy: Integer = 1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Form1.DoubleBuffered:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left := Image1.Left + vx; Image1.Top := Image1.Top + vy; if ((Image1.Left > (ClientWidth - Image1.Width - 1)) or (Image1.Left < 1) then vx := vx * -1; if ((Image1.Top > (ClientHeight - Image1.Height - 1)) or (Image1.Top < 1) then vy := vy * -1; end; MfG, d3g |
Hi,
bei dem Source von d3g: vor den then fehlt noch eine ) Die Variablen vx un vy dürfen nie den gleichen Wert haben, sonst bewegt sich das Bild nur in der Diagonalen. Grüsse, Daniel :hi: Nachtrag: ausserdem musst DU die Scrollbars von Form1 ausschalten, sonst Blitzen die manchmal auf. |
Hi,
so nun auch mein Beispiel:
Code:
Auch hier muss man leider die Scrollbars ausschalten, Vielleicht schaffst Du es selbst dies zu verhindern.
var
Form1: TForm1; vx, vy: integer; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Randomize; vx := -10 + Random(20); vy := -10 + Random(20); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left := Image1.Left + vx; Image1.Top := Image1.Top + vy; if (Image1.Left > ClientWidth - Image1.Width - 1) or (Image1.Left < 1) then vx := vx * -1; if (Image1.Top > ClientHeight - Image1.Height - 1) or (Image1.Top < 1) then vy := vy * -1; end; Die Startrichtung ist immer unterschiedlich. Grüsse, Daniel :hi: |
Zitat:
Zitat:
Die Scollbars kann man übrigens verhindern, indem man kein Image verschiebt, sondern den Inhalt eines Bildes immer auf eine Paintbox zeichnet (am besten mit BitBlt() blittet). MfG, d3g |
Hallo d3g,
Zitat:
Zitat:
Einfach ist es nciht ohne DirektX. Grüsse, Daniel :hi: |
Hi Daniel !
Ich habe den Code gleich ausprobiert und ich muss sagen es ist genau das was ich suchte! :dancer: er funktioniert super.Danke für die schnelle Hilfe Also ich habe meine Form BorderStyle auf bsNone BorderWidth auf 0 alle BorderIcons auf false Caption auf '' ; FormStyle auf fsStayOnTop und keine probleme damit :bounce1: :hello: :spin: Gruß Tino |
Hallo City Light,
juhuu, wieder ein Menschen glücklich gemacht. :wink: :bounce2: Spiel mal ein bisschen mit den Timer Zeiten. Bei mir ist <30ms nicht drin, denn dann wird es langsam und es ruckelt. Spiel mal mit den Zeiten, dann siehst Du selbst mal die Unterschiede. //Und fluchen anfangen, das Windows so Plöd ist... :mrgreen: Grüsse, Daniel :hi: |
Hi
also ich konnte nur bis 30ms gehen dann fängt es an langsam zu ruckeln |
Hi ich noch mal!
Ich hätte da noch eine frage zum schonen Wie bekomme ich das Vorschau fenster sowie das fenster mit den Einstellungen(im Windows) in mein Schoner eingebaut http://www.quake4world.de/board/imag...ies/1zhelp.gif Gruß Tino |
Im Borland Developer Network (BDN) gibt es hunderte Beispiele. Eines der Besten findest Du hier
http://community.borland.com/article...,26652,00.html ...:cat:... |
hey sakura sowas such ich seit Ewigkeiten, ich hab zwar schon einiges gefunden, aber diese Beispiele hatten immer irgendelche fatalen Bugs drin, wie z.b., dass man vom Vorschaufenster aus den Schoner nicht starten konnte ohne accessviolations zu bekommen :spin: :spin: :spin: , oder dass man das onlystartup selberschreiben musste :roll:
:arrow: echt kewl :!: danke Sakura MathiasH |
Bin auch http://www.quake4world.de/board/imag...ies/dafuer.gif
Wo nach man lange suchten mußte, nun entlich gefunden, dank Dir! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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