Jeu de membrane - jeu génial pour les autistes en 20 lignes de code

Le code du jeu est entièrement écrit dans le langage des mathématiques . Décomposons-le.





  1. N est responsable de la taille des cellules.





  2. pow (1.02, iTime) crée une animation uniforme des cellules, 1.02 - vitesse d'animation; tôt ou tard, cela provoque un débordement de tampon, mais l'animation peut être désactivée en faisant t = 1 ou faite pour qu'elle ralentisse avec le temps t = iTime.





  3. dx et dy - décalage x et y de la position du curseur.





  4. float f = float ((x-dx) * (x-dx) * t + (y-dy) * (y-dy) * t); // Ce sont les règles du jeu - dans cette fonction (pas réellement une fonction), vous pouvez apporter des modifications et obtenir une nouvelle logique de jeu.





  5. float F = abs (f * sin ((x) / N) * sin ((y) / N)); // Crée une membrane cellulaire pour la fonction (pas la fonction) f.





  6. int R = int (plancher (F * pow (16,0, 6,0-ceil (log2 (F) /4,0)))); // Adapter les couleurs de la membrane en ajoutant des zéros à la fin de la notation hexadécimale ou en la coupant vers la droite. Fondamentalement, il s'agit d'un index de couleurs X11 prêt à l'emploi utilisé dans HTML ou Photoshop.





Bref, tout est simple. Je suis en fait nouveau en mathématiques et en GLSL, mais mes amis ont aimé ce jeu, et je me demande comment Habr va le noter. Si vous avez des idées, vous pouvez les bifurquer. Pour ceux qui veulent essayer de transférer vers d'autres langages de programmation, je vous préviendrai que de tels calculs pour chaque pixel sont très difficiles pour le processeur - vous devez programmer des shaders (enfin, personnellement, mon expérience, mais en général cela ne me dérange pas )








All Articles