FISHTANK - SCREENSAVER INTERACTIF : AQUARIUM AVEC POISSONS VIVANTS AVEC LESQUELS

cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018 - 5 oct. 2008 à 10:42
pape0 Messages postés 132 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 1 septembre 2014 - 16 août 2013 à 22:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48116-fishtank-screensaver-interactif-aquarium-avec-poissons-vivants-avec-lesquels-on-peut-interagir-ecran-de-veille

pape0 Messages postés 132 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 1 septembre 2014
16 août 2013 à 22:53
et en .Net
np78 Messages postés 5 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 septembre 2009
5 sept. 2009 à 13:06
Salut,

Nous avons eu la même idée de développement, j'ai fait un prog qui ressemble au tient (Je l'ai fait pour d'autres animaux). Ton code est par contre beaucoup plus propre que le mien ;-)

Question : ou as tu trouvé les images ? qui te les as faits ? (email,site)

Je t'ai envoy un MP.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 déc. 2008 à 02:03
salut,

je n'ai pas regardé le code mais le rendu est assez sympa.

une bug très gênant par contre : je suis en dual screen (bureau étendu = 2560*1024), et quelques poissons restent bloqués au bord gauche de l'écran de droite...
les bulles quant à elles ne sont que sur l'écran de gauche

(désolé si cette remarque a déjà été faite dans les précédents commentaires)
++ ;)
piergel Messages postés 51 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 août 2009
8 oct. 2008 à 16:29
Autres idées d'amélioration :

- Gérer les config multi-écrans pour que les poissons aient un peu plus de place pour nager que le moniteur principal ! ^^
- Si tu fais une partie config (comme l'a suggéré Patate), mettre une case à cocher "quitter la veille par ESC" pour que au moins la première fois on aie pas cette facilité pour sortir (et que le mode "blague au copain" soit plus drôle)

A part ça, j'ai regardé un peu plus en détail le code, c'est concis, efficace tout en étant clair. Très didactique !
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
7 oct. 2008 à 20:11
Super MADM@tt,
Le code est propre et clair comme je les préfères.

Juste un truc tu ne trouves pas mieux les ...
set oObjet = ...
With oObjet
...
...
end with

dèjà c'est plus rapide je crois et plutôt plus clair niveau code tu ne trouves pas?
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
7 oct. 2008 à 19:27
Mise à jour :
- Ajout de bulles transparentes
- Touche Echap pour quitter le programme (en + de la façon naturelle de quitter le programme : chasser tous les poissons)
- Réglages plus fins, animations plus fluides etc...
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
7 oct. 2008 à 18:40
Patate > merci, je prendrai ça en compte dès que possible.

Je prépare une mise à jour sous peu, pas beaucoup de nouveautés mais y'aura au moins la possibilité de quitter avec la touche Echap

Beru80 > Merci ;)
Je bosse sur les poissons
BERU80 Messages postés 19 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 7 octobre 2008
7 oct. 2008 à 18:17
Programme très sympathique et code instructif.
un plus grand choix de poissons serait plus distrayant.
9sur10
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 oct. 2008 à 23:01
pour le code de sélection du type de lancement rien de plus simple. Voilà un exemple (avec la bidouille pour l'aperçu dans Windows.

Public Sub Main()
'On vérifie que le screensaver n'est pas lancé si oui on ferme
If App.PrevInstance = True Then End
'On récupère les 2 premiers caractère de ligne de commande
Select Case UCase$(left$(Trim(Command), 2))
Case "/S" 'Ceci indique que le screensaver est appelé
screensaver.Show
Case "/P" 'Ici le code pour positionner le screensaver (ou au moins une form avec un logo) sur la représentation de l'écran dans la fenêtre de configuration de Windows.
Dim args As String
Dim preview_hwnd As Long
Dim preview_rect As RECT
Dim window_style As Long
preview_hwnd = CLng(Right$(Trim(Command), Len(Trim(Command)) - 2))
GetClientRect preview_hwnd, preview_rect
Load Prévue 'Form contenant un apercu à afficher dans windows (avec les poissons pas top donc une form avec une image devait suffir)
Prévue.Caption = "Preview"
window_style = GetWindowLong(Prévue.hwnd, GWL_STYLE)
window_style = (window_style Or WS_CHILD)
SetWindowLong Prévue.hwnd, GWL_STYLE, window_style
SetParent Prévue.hwnd, preview_hwnd
SetWindowLong Prévue.hwnd, GWL_HWNDPARENT, preview_hwnd
SetWindowPos Prévue.hwnd, HWND_TOP, 0&, 0&, preview_rect.Right, preview_rect.Bottom, SWP_NOZORDER Or SWP_NOACTIVATE Or SWP_SHOWWINDOW
DoEvents
Case "/C" 'Représente la partie configuration
reglage.Show
Case Else
reglage.Show
End Select
End Sub

Ce code a fonctionner pour moi mais c'est un peu fait de bric et de broc. Maintenant si tu as mieux je serais content de voir ton code :)
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
6 oct. 2008 à 17:15
Pour le systray, effectivement j'avais pas pensé à ça.
La solution la plus pertinente à priori serait donc la touche Echap pour quitter le screensaver (bien sur il restera la possibilité de jouer avec les poissons comme maintenant). Pas de systray : aucun screensaver ne le fait, et ça serait bizarre. Pour le configurer, je passerais par le menu classique de windows (si tu arrives à retrouver le code en question ;)

Asimengo > Merci ;)

J'essayerai de rajouter un poisson dans la semaine. Et mieux, de passer à une génération pseudo-dynamique des poissons : Taille dynamique des poissons, peut etre couleur aléatoire si j'y arrive... J'essayerai de rendre ça un peu plus propre et évolutif. Voir meme des algues ? et des bulles qui montent, qui montent

Au passage, si vous avez des liens vers des ressources graphiques qui peuvent être utiles (poissons vectorisé de préférence, algues, bulles etc...) merci d'avance
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
6 oct. 2008 à 15:06
Mince, il est intéressant ton programme MadM@tt, je le trouve génial dans son concept, et le code à premier vu assez simpliste et efficace.

Je suis preneur de toutes les mises à jour et je l'adopte à l'immédiat.
piergel Messages postés 51 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 août 2009
6 oct. 2008 à 14:00
Remarque pertinente concernant l'aspect "économie" de l'économiseur d'écran ! Je suis un vieux de la vieille qui a encore oublié que son trinitron sony s'est retrouvé au grenier depuis quelques années déjà (malgré des qualités indéniables) !
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 oct. 2008 à 13:59
Pour le systray afin de pouvoir le quitter, c'est bien mais tu le dis toi même en cas de password sur l'arrêt du screensaver plus de bureau. Le mieux serait l'utilisation d'une touche (la plus inutilisée possible si tu veut continuer à bosser avec tes poissons). Sinon pour le bout de code dont je te parlais, je cherche ça et je te le passe.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
6 oct. 2008 à 13:30
Patate > Merci pour toutes ces idées.
Déjà, à propos du processus qui tourne toujours alors qu'il n'y a plus de poissons, ça me semble bizarre oO, bref si tu as plus de détails.
Sinon pour la configuration, bonne idée. J'en profiterai pour rejoindre l'idée de Patrice99 pour mettre ça avec un icone dans le systray, ça permettra de se débarrasser des poissons plus vite.

Après, comme l'a dit Piergel, moi aussi j'aime bien avoir la possibilité de pouvoir bosser sur l'ordi même s'il y'a toujours des poissons. Des fois on a juste besoin de regarder un truc et perso j'aime pas couper l'écran de veille. Et puis c'est marrant, tout simplement ^^
"De toute façon, si on protège par mot de passe, les fenêtres disparaissent et on n'a plus que le fond d'écran." >> Dans ce cas, pas besoin de se prendre la tête avec un screenshot alors.

Par contre, l'idée d'avoir d'autres poissons, ou d'autres algues, traine un peu, si seulement VB permettait l'héritage !! (et que personne ne me dise de passer à VB.Net !! :D) Je regarderais peut être pour en rajouter.

Pour gérer la prévisualisation dans l'interface de Windows, ça m'intéresserai effectivement si tu pouvais m'envoyer ton programme. ça ferait un peu plus propre et "pro".

Dernière chose : "il ne faut pas considérer ça comme un économiseur d'écran (qui n'économise pas grand chose d'ailleurs !) mais effectivement comme un jeu"
Je ne suis pas entièrement d'accord, les écran de veille ont été inventé pour éviter que les images persistent sur les écrans (ça abimait les écrans avant, maintenant ce n'est plus le cas). Donc leur seule fonction est d'avoir quelque chose de sympa, et ça fait tout sauf économiser quoi que ce soit (à part l'écran noir), car les taches de fond tournent toujours, et en plus on affiche un truc à l'écran. Comparé à d'autre écran de veille, je ne pense pas que le mien consomme vraiment plus, j'ai regardé l'utilisation CPU et c'est vraiment négligeable avec un processeur à 800 Mhz (mon portable en mode battery saving).
Bref, je pense que ce débat n'a pas lieu d'être tant que l'utilisation CPU est négligeable.
piergel Messages postés 51 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 août 2009
6 oct. 2008 à 10:46
Je trouve personnellement intéressant de pouvoir continuer à utiliser windows en compagnie des poissons :) De toute façon, si on protège par mot de passe, les fenêtres disparaissent et on n'a plus que le fond d'écran. Je pense effectivement qu'il ne faut pas considérer ça comme un économiseur d'écran (qui n'économise pas grand chose d'ailleurs !) mais effectivement comme un jeu, ou une blague à faire à ses petits camarades ! L'idée est intéressante et qui sait, ça va peut-être faire fureur !
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 oct. 2008 à 03:05
J'ai oublié de noter :x
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 oct. 2008 à 03:02
Il est vrai que visuellement (à part les poissons évidement) rien n'indique que le screensaver tourne (d'ailleurs chez moi un processus était encore actif apparemment sans poissons visible).

Idées d'amélioration :

Créer une partie configuration pour y inclure le nombre de poissons à chasser, Ajouter d'autres espèces de poissons et permettre leur choix (taille, vitesse) dans cette même partie configuration.

Pourquoi ne pas ajouter un effet bleuté sur tout l'écran (avec pourquoi pas ajout de corail, algues etc.)

Travailler sur un screenshot du bureau et empêcher toute manipulation sur les autre fenêtres quand le screensaver tourne (j'en connais qui ne déclenche leur screensaver que pour protéger leur machine contre des regards indélicats et être protégé par le mot de passe de session à l'arrêt de ce dernier. Là tant que les poissons sont pas chassés on peut faire ce qu'on veut sur la machine.

Gérer la prévisualisation dans les paramètres de Windows. Là gros clash. En effet que ce soit pour la configuration, l'aperçu ou la prévisualisation, c'est le screensaver qui se lance et on se retrouve avec plusieurs processus. Assez déroutant d'autant plus que rien n'est prévu pour quitter instantanément. Pour la prévisualisation, je dois avoir un bout de code quelque part qui pourrait t'aider. Si il t'intéresse, fais le moi savoir.

Sinon bon travail, ça devient rare en VB6 malheureusement. 8/10
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
5 oct. 2008 à 12:35
Pourquoi pas un menu icone à coté de l'heure ?
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
5 oct. 2008 à 12:29
Ah oui effectivement, c'est la seul manière de stopper l'écran de veille. Et c'est vrai que ça s'apparente assez à un jeu sur ce point la.
Il faudrait que je réfléchisse à une manière de s'en débarrasser rapidement (dans certaines situations on a peut-être pas envie de passer 10 secondes à faire sortir les poissons de l'écran :)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
5 oct. 2008 à 12:06
C'est la seule manière que quitter le programme ? Dans ce cas, c'est plus un jeu qu'un économiseur d'écran, mais c'est vrai que c'est rigolo.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
5 oct. 2008 à 11:47
Euh désolé mais je vois pas trop ce que tu veux dire ?
La si on fait sortir tous les poissons de l'écran, c'est fini.
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
5 oct. 2008 à 10:42
Idée d'amélioration : une technique pour épuiser définitivement le stock de poissons...
Rejoignez-nous