Animación de la batería de carga con el tiempo -- python camp codereview Relacionados El problema

Charging battery animation over time


1
vote

problema

Español

Tengo el siguiente método que está funcionando perfectamente. El problema principal que veo es que creo que se puede hacer solo en una línea, pero no sé cómo:

  getTitle() > 02  

Modela una animación simple de una batería de carga en pasos de 1 segundo. Algo así como: [...] --1s - & gt; [= ...] --1s - & gt; [== ..] --1s - & gt; [===.] --1s - & gt; [====] --1s - & gt; [....] ...

El nivel simbólico es una variable que mantiene un valor de [0, 25, 50, 75, 100], uno de estos, por lo que los bucles de animación de ese valor simbólico, por lo que no comienza a partir de 0.

Original en ingles

I have the following method that is working perfectly. Main problem I see is that I think it can be done just in one line, but I don't know how:

def _animate_display(self, display):     self._timer += 1 / bge.logic.getAverageFrameRate()      symbolic_level = self.battery.get_symbolic_level()      if self._timer >= 5.0:         self._timer = symbolic_level / 25     elif (self._timer >= 4.0) and (symbolic_level <= 100):         utils.change_texture(display, 'DisplayMat', 'icons/battery_100.png')     elif (self._timer >= 3.0) and (symbolic_level <= 75):         utils.change_texture(display, 'DisplayMat', 'icons/battery_75.png')     elif (self._timer >= 2.0) and (symbolic_level <= 50):         utils.change_texture(display, 'DisplayMat', 'icons/battery_50.png')     elif (self._timer >= 1.0) and (symbolic_level <= 25):         utils.change_texture(display, 'DisplayMat', 'icons/battery_25.png')     elif (self._timer >= 0.0) and (symbolic_level <= 0):         utils.change_texture(display, 'DisplayMat', 'icons/battery_0.png') 

It models a simple animation of a charging battery in steps of 1 second. Something like: [....] --1s--> [=...] --1s--> [==..] --1s--> [===.] --1s--> [====] --1s--> [....] ...

Symbolic level is a variable that keep a value of [0, 25, 50, 75, 100], one of these, so animation loops from that symbolic value so it doesn't start from 0.

  
   
   

Lista de respuestas

2
 
vote

Me lo llevé a 6 para que sea un poco más legible:

  // Base Variables5  
 

I took it to 6 to make it a little more readable:

def _animate_display(self, display):     self._timer += 1 / bge.logic.getAverageFrameRate()     symbolic_level = self.battery.get_symbolic_level()     if self._timer >= 5.0:         self._timer = symbolic_level / 25     else:         utils.change_texture(display, 'DisplayMat', 'icons/battery_{}.png'.format(next((x,y) for x,y in zip(xrange(100, -1, -25), xrange(4, -1, -1)) if symbolic_level <= x and self._timer >= y))) 
 
 
       
       

Relacionados problema

6  Compara el último tiempo de modificación con tiempo especificado  ( Compare last modification time with specfied time ) 
Estoy escribiendo una función en Python que compara el tiempo de modificación de un archivo en Linux (usando OS.STAT) con un tiempo específico y compare las f...

4  Atomas Clone en Python  ( Atomas clone in python ) 
Aquí está mi clon de mierda de atomas , un juego de rompecabezas donde combina pequeños átomos en otros más valiosos. 9988776655544337 ¿Hay algún códig...

2  Dos formas de aleatorias aleatoriamente las tarjetas  ( Two ways to randomly shuffle cards ) 
Aquí hay dos implementaciones que escribí para aleatorizar las tarjetas. El primer método ( dt5 ) Selecciona una tarjeta aleatoria, luego lo quita al frent...

6  Diseño de un juego de acorazado simple en Python  ( Designing a simple battleship game in python ) 
Estoy tratando de codificar acorazado . Debe ser un juego de texto de un jugador contra la computadora donde el jugador de computadora y el jugador humano se...

61  Uso de funciones separadas para Project Euler 1  ( Using separate functions for project euler 1 ) 
Comencé a programar con Java y C ++, así que estoy acostumbrado a tener una función "principal" que llama a otras funciones que realizan el trabajo real. En l...

2  Análisis de XML con doble etiquetas anidadas usando MINDOM  ( Parsing xml with double nested tags using mindom ) 
Quiero recuperar la identificación y el nombre por habilidad. Funciona pero esta bien hecho? Me gustaría quedarme con minidom, pero todos los consejos serán a...

6  Unión profunda / recursiva, todos, cualquiera, suma, len  ( Deep recursive join all any sum len ) 
Sigo olvidando que el estándar join() solo puede tomar una sola itinerable, así que hice algunas funciones que actúen recursivamente en cualquier argumento ...

3  Usuario rápido para algunos números, luego imprime el máximo y min  ( Prompt user for some numbers then print the max and min ) 
La función de este programa está solicitando repetidamente a un usuario para números enteros hasta que el usuario ingrese en 'done' . Una vez que se ingresa ...

56  Proyecto Euler Problema 1 en Python - Múltiples de 3 y 5  ( Project euler problem 1 in python multiples of 3 and 5 ) 
Me gustaría sugerencias para optimizar esta solución de fuerza bruta a problema 1 . El algoritmo actualmente comprueba cada entero entre 3 y 1000. Me gustarí...

6  Comprobando una cuadrícula de palabras  ( Checking a word grid ) 
Escribí este programa donde puede ingresar x cantidad de palabras que de longitud x que comprueba si la cuadrícula se formó son las mismas palabras vertic...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos