AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Touhou - BadApple!! Screensaver mit Delphi rekriiert

Touhou - BadApple!! Screensaver mit Delphi rekriiert

Ein Thema von Memnarch · begonnen am 20. Jan 2011 · letzter Beitrag vom 23. Mai 2023
Antwort Antwort
Seite 1 von 7  1 23     Letzte » 
Benutzerbild von Memnarch
Memnarch
Registriert seit: 24. Sep 2010
Nabend allerseits.
Ich hoffe ich bekomme den Post in meinem müden Zustand noch hin .

Mein kleines Projekt das ich euch hier in einer ersten Fassung vorstellen möchte, ist ein Screensaver(für Windows). Der Screensaver benutzt eine Bildsequenz mit Alphatransparenz und gibt diese auf dem gesamten Bildschirm aus.

Die Einstellungen des Screensavers erlauben es euch die Interpolationsqualität festulegen, sowie die Transparenz der HintergundFarbe, die Transparenz des Screensavers selbst und selbstredend die Hintergrundfarbe.(es kann auch eingestellt werden ob man es im Fenster oder Vollbild ausführen möchte).

Die Audioeinstellungen erlauben es euch eine Audiodatei(*.mp3) auszuwählen, die während der Animation abgespielt wird.(vorzugsweise die beigelegte Datei, da dass video und die Audiospur zusammengehören). Lautstärke kann ebenfalls konfiguriert werden.

Zum Benutzen nach dem Download und entpacken des RAR-Archives, einfach rechtsklick auf die *.src Datei und 'Installieren' klicken.

WICHTIG: Animation.dat MUSS immer im selben Ornder wie die *.src datei sein, sonst endet es böse .

Download(MU - 150MB, Updated 12.07.2011)

Vorausetzungen:
WinXP (Drunter geht nicht)
3GHZ SingleCore(sollte passen) oder Dualcore mit 2.6Ghz

Weiterhin plane ich noch Graphics32 anstatt GDI+ zum interpolieren des Bildes zu nehemen, wie und ob das klappt wird sich noch zeigen.

Zu guter letzt noch ein Video für die Leute die gerade keine lust haben das ganze runterzuladen:

http://www.youtube.com/watch?v=ej3J27dmCJU
Das Video ist etwas veraltet!(FRaps und die Tatsache dass das nachladen der Bilder zu diesem Zeitpunkt noch nicht per MUltithreading optimiert war, zeigen hier ne schlechte fps )
Es kommt ein neues, nur heute Abend schaffe ich das echt nicht mehr >.<

Benutzt den obigen MU link NICHT den Testbuild, der ist veraltet

MFG
Memnarch
Angehängte Dateien
Dateityp: rar BadApple_TestBuild.rar (493,7 KB, 108x aufgerufen)

Geändert von Memnarch (13. Jul 2011 um 10:29 Uhr)
 
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#2
  Alt 21. Jan 2011, 07:35
Moin,


so, ich habe es mir mal angeschaut.

Nach dem Start lief es an und dann kam:

---------------------------
Touhou - BadApple!! Screensaver (Delphi-Version)
---------------------------
Thread-Fehler: Das Handle ist ungültig (6)
---------------------------
OK
---------------------------


Der Fehler taucht wohl sporadisch auf oder das Programm einfach bricht ab.

//Edit:
Der Fehler kommt wenn man die Maus bewegt.

Vista/ Dualcore 3GHz / "4" GB-RAM / NV GF 9600GT
Matti

Geändert von turboPASCAL (21. Jan 2011 um 08:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch
 
#3
  Alt 21. Jan 2011, 09:52
Herrje >.<.
Und ich dachte ich hätte es gefixxed.
Na dann habe ich ja schonmal wieder ne baustelle zum dranrumschrauben

Danke fürs ausprobieren . Bei mir lief alles rund, und ich hab imo keine VM, da ist das Goldwert

EDIT: Der fehler kommt bei der Mausbewegung, weil dort das prog geschlossen wird.
Irgendwas wird zu früh geschlossen und es wird versucht was nachzpuffern was nicht geht.
EDIT2: Exakterweise liegt das Problem übrigens bei meinem TStream. Der nebenthread liest daraus daten aus. Beim schließen wird nun zu allererst die hauptschleife zum anzeigen der bilder beendet. Dann der Thread(auf den SOLLTE gewarted werden), und danach werden die objekte freigegeben. ABER aus irgendeinem grund fliegts ja anscheinend doch noch. Threads und ich...eine beziehung die wohl niemals warm wird^^"
Ich werfe morgen mal nen blick drauf, heute schaffe ich es leider nicht mehr

EDIT3: ach nee... der thread scheint sich 2 mal freizugeben o.O. Ich setze FreeOnTerminate auf False, setze Terminate auf True, und warte bis der thread fertig ist, dan mach ich nen free. Also irgendwas stimmt dann da nicht o.o


MFG
Memnarch

Geändert von Memnarch (21. Jan 2011 um 10:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch
 
#4
  Alt 21. Jan 2011, 19:30
SOO,
hab mal schnell drüber geguckt und schonmal eine große dumheit gefunden .

Application.processMessages()

Hat mal sowas von garnichts in nem Subthread zu suchen XD.
Ok, nieweider wnen ich müde bin, programmieren

Und nochwas abgeändert beim beenden des Subthreads sodass es nun keinen Handle fehler mehr geben sollte.
TROTZDEM: das ist erstmal nur als testbuild deklariert, weswegen ich hier nur die neue Screensaver datei Poste, die restlichen files(animation.dat und audio.mp3) müssen aus dem esrten pack im HAuptpost genommen werden.

TestBuil
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#5
  Alt 21. Jan 2011, 21:56
laufen tut es hier anscheinend

- ich höre nur keinen Ton
- abundzu flimmert es, bzw es scheint so, als wenn mal ganz kurz der ganze Bildschirm schwarz würde,
bzw. manchmal hängt es für 'nen halbes Sekündchen
- es wäre auch toll, wenn das Abschalten ebenfalls auf die Tastatur reagiert
- und mach besser noch den Mauszeiger unsichtbar


Was ich aber mal schön finde, daß ein "transparenter" Bildschirmschoner wirklich mal transparent ist.
Oftmals wird ja einfach nur ein Screenshot gemacht und man sieht keinen aktuellen Hintergrund.

Gut, die CPU-Belastung und die Dateigröße ist noch ein bissl "radikal", für einen BildschirmRechnerschoner (die Flachbildschirme muß man ja nicht mehr so sehr schonen).

Geändert von himitsu (21. Jan 2011 um 21:59 Uhr)
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#6
  Alt 22. Jan 2011, 01:49
Läuft überraschend flüssig, muss ich sagen, bei ca. 20% CPU-Auslastung. Btw, hast du dir mal MNG APNG angeschaut (Gibt sicher irgendwo ’ne Delphi-Komponente dafür)? Vielleicht kannst du damit die Dateigröße noch reduzieren.

P.S.: Wirst du den Source-Code eigentlich freigeben?
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch
 
#7
  Alt 22. Jan 2011, 23:13
Sehr gut, dan scheint sich der laufzeitfehler endlich die Klinke gegeben zu haben .

@Himitsu:
Wen du keinen Ton hörst: Tschuldige, hatte ich glaube ich nicht erwähnt, die audiodatei muss unter einstellungen erst selektiert werden(so kan man das beliebig austauschen wen man möchte , es ist auch noch geplant den packer für die animdatei mitzupacken sodas jeder seine eigenen animationen(mit alphatransparenz) nutzen kann .
(Sofern die transparenz schon mit dabei is )

Mauszeiger mach ich noch wech
-Das das bild flackert is mir gestern auch aufgefallen, scheint er was nich nachzubuffern. Kümmer ich mich drum .
-Eigentlich reagiert es auf Tastatureingaben. Aber dadurch das die maus an ist, und dass man durch transparente stellen klicken kann, verleirts wohl manchmal den fokus weswegen Keypreview nich geht.

@Namenloozer: Werde ich mir mal angucken, nur darf es die dekompressionsleistung nicht hochtreiben^^(skalieren frisst ja schon alles ).
Sourcecode, guck ich mal, der ist so undordentlich....geht garnicht^^. Wenn er aufgeräumt is, guck ich mal .

PS: könntet ihr wenn ihr die Auslastung anschreibt, vllt noch eure Prozessortaktung angeben? 20% hort sich weniger an, aber ich schätze mal da hat jemand nen quadcore^^(bei meinem dualcore sinds nette 50% )

Die auslastung bekomme ich vllt runter wnen ich mit Graphics32 experimentiere. Soll ja um einiges schneller sein o.O.

MFG
Memnarch
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#8
  Alt 23. Jan 2011, 00:09
Ja, ist ein Quadcore (Q6600 @2.4GHz).

Btw: Mein Nick hat nur ein O (Und auch nix mit dem englischen Wort „loser“ zu tun )
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#9
  Alt 23. Jan 2011, 00:37
Wegen dem Durchklicken:

Implementiere noch {TForm}.OnDeactivate oder Application.OnDeactivate oder {TApplicationEvents}.OnDeactivate
und eventuell auch noch sicherheitshalber das OnMinimize.

Darin einfach nur Application.Terminate aufrufen
(oder wie auch immer du auf das Beenden reagieren möchtest)
und das Durchklicken, sowie ähnliche Ereignisse sollten mit abgefangen werden.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch
 
#10
  Alt 23. Jan 2011, 00:54
@Namenlozer: Sorry^^"

@Himitsu: Was das durchklicken angeht, mal gucken. Das machts Delphi automatisch >.<. Da muss ich mal nachforschen, oder ich stell die mindesttransparent auf 1 (dan gehts schon nicht mehr). Wäre aber programmtechnisch ne unsaubre lösung v.v
  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 15:50 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