hugoruscitti/pilas

View on GitHub
data/manual/tareas/index.json

Summary

Maintainability
Test Coverage
{
    "content": "<h1 id=\"manejo-de-tiempo-con-tareas\">Manejo de tiempo con tareas</h1>\n<p>Una necesidad muy com\u00fan en los videojuegos\nes poder planificar tareas para ser ejecutadas\npor tiempo.</p>\n<p>Por ejemplo, en un juego de naves podr\u00edamos\nquerer que aparezcan naves enemigas cada\ndos segundos.</p>\n<h2 id=\"tareas\">Tareas</h2>\n<p>Las tareas son acciones que elegimos ejecutar\nen un determinado momento.</p>\n<p>Al momento de crear la tarea tenemos que\npensar \"en qu\u00e9 momento se tiene que ejecutar\nla tarea\", y dependiendo de lo que queramos,\ntenemos que escribir algo c\u00f3mo:</p>\n<pre><code class=\"python\">pilas.tareas.agregar(tiempo, funcion, parametros)\n</code></pre>\n\n<p>Por ejemplo, para hacer que un actor espere 5 segundos\nantes de emitir un mensaje:</p>\n<pre><code class=\"python\">mono = pilas.actores.Mono()\n\ndef emitir_mensaje():\n  mono.decir(&quot;Hola&quot;)\n\npilas.tareas.agregar(5, emitir_mensaje)  \n</code></pre>\n\n<p>Hay tres tipos de creaciones de tareas:</p>\n<ul>\n<li>tareas que se ejecutan una vez.</li>\n<li>tareas que se ejecutan siempre.</li>\n<li>tareas condicionales.</li>\n</ul>\n<p>las tareas condicionales se ejecutar\u00e1n siempre y cuando\nla funci\u00f3n que las representa retorna True. Si la funci\u00f3n\nretorna False la tarea dejar\u00e1 de ejecutarse.</p>\n<h2 id=\"eliminar-tareas\">Eliminar tareas</h2>\n<p>Una forma sencilla de detener una tarea es iniciarla\nc\u00f3mo condicional, y que la funci\u00f3n que le asignamos\nretorne False.</p>\n<p>Otra forma es simplemente capturar el retorno de\nla funci\u00f3n que ha creado la tarea y detenerla.</p>\n<p>Por ejemplo:</p>\n<pre><code class=\"python\">una_tarea = pilas.tareas.siempre(5, funcion)\n</code></pre>\n\n<p>y luego, cuando queramos que la tarea finalice\ny no se vuelva a ejecutar, tendr\u00edamos que ejecutar\nuna sentencia como esta:</p>\n<pre><code class=\"python\">una_tarea.terminar()\n</code></pre>\n\n", 
    "url": "/tareas/", 
    "language": "en", 
    "title": "Manejo de tiempo con tareas"
}