Giter VIP home page Giter VIP logo

kingfisher's Introduction

VB.NET KingFisher Desktop Pet

Windows NET

Translate this page to english: https://bit.ly/3A8G7zz

Esta aplicación es un clon escrito en Visual Basic.NET del programa Desktop Bird KingFisher de SEGA Enterprises, LTD.

Los desktop pets o Screenmates fueron muy populares en la época de Windows95/98/XP pero debido a la inclusion de software malicioso por parte de terceros y la saturación de aplicaciones de este tipo, hicieron que al final la gente perdiera el interés y cayeran en desuso.

Esta aplicación es un pequeño tributo a los screenmates de antaño y a sus creadores.

Funcionamiento interno

  • Todas las animaciones son arrays de imágenes (Bitmaps) que se guardan como recursos incrustados en un archivo .resx.
  • Al ejecutar el programa, se inicia un reloj (Timer) y con cada tick del reloj se calcula la animación y las imágenes a mostrar.
  • Una función genera puntos aleatorios dentro de la pantalla y otra función hace que el pájaro vuele hacia ellos uno tras otro.
  • Cada cierto tiempo el pájaro ejecuta animaciones aleatorias como pescar, volar por la pantalla, o posarse en una ventana.
  • El cambio de animación se controla mediante un contador que incrementa cada vez que se alcanza uno de los puntos aleatorios.

Animaciones implementadas

  • El pájaro volará aleatoriamente de lado a lado de la pantalla.
  • Si el pájaro se acerca a los bordes de la pantalla, ejecutará una animación de frenado para no estrellarse.
  • El pájaro detectará ventanas abiertas y se posará sobre ellas hasta que la ventana pierda el foco o se minimize o se cierre.
  • Cada cierto tiempo el pájaro bajará en picado hasta la barra de tareas y pescará un pececillo.
  • Si encuentra una ventana sobre la que posarse, se comerá allí el pececillo, luego volverá a volar aleatoriamente de lado a lado dentro de la pantalla.
  • Si pasado cierto tiempo no encuentra una ventana abierta, el pájaro bajará hasta la barra de tareas y se comerá allá el pececillo.

Sonidos

  • El pájaro reproduce sonidos cada vez que una animación se ejecuta o cada vez que pesca un pececillo, los sonidos se pueden desactivar.

APIs de Windows implementadas

  • GetWindowRectangle() <-- Substituye a GetWindowRect() porque obtiene el tamaño de la ventana sin sombras en Win10.
  • DwmGetWindowAttribute()
  • GetWindow()
  • GetWindowText()
  • GetTopWindow()
  • IsWindowVisible()
  • EnumWindows()
  • EnumWindowsDelegate()

Fallos conocidos

  • La transparencia del control Picturebox no acaba de ser correcta, sigo buscando la manera de ajustarla correctamente.
  • Sigo buscando a alguien que me ayude a depurar la implementación de las APIs de Windows para detectar ventanas abiertas.
  • Algunas animacions son algo bruscas, me gustaría mejorarlas y hacerlas más suaves.

Agradecimientos

kingfisher's People

Contributors

fpaezf avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.