{"id":948,"date":"2026-04-02T01:18:32","date_gmt":"2026-04-02T04:18:32","guid":{"rendered":"https:\/\/www2.ic.uff.br\/pplay\/?page_id=948"},"modified":"2026-04-02T01:18:58","modified_gmt":"2026-04-02T04:18:58","slug":"core-2-0","status":"publish","type":"page","link":"http:\/\/www2.ic.uff.br\/pplay\/core-2-0\/","title":{"rendered":"Core"},"content":{"rendered":"\n<div class=\"doc-container\">\n    <div class=\"doc-header\">\n        <h1>A Janela e o Tempo (FPS)<\/h1>\n        <div class=\"doc-badge\">M\u00f3dulo: PPlay.window | Dificuldade: Iniciante<\/div>\n        <p>A <code>Window<\/code> \u00e9 a espinha dorsal do seu jogo. Ela implementa o padr\u00e3o Singleton, o que significa que existe apenas uma janela gerenciando os gr\u00e1ficos, os eventos e a velocidade do jogo.<\/p>\n    <\/div>\n\n    <div class=\"doc-section\">\n        <h2>1. Resolu\u00e7\u00e3o Virtual (Anti-Blur)<\/h2>\n        <p>Na Power PPlay 2.0, voc\u00ea programa o jogo para uma resolu\u00e7\u00e3o pequena (ex: 400&#215;300), mas a engine o projeta em Full HD. O par\u00e2metro <code>pixel_art<\/code> define como essa imagem ser\u00e1 esticada.<\/p>\n        <table class=\"doc-table\">\n            <tr>\n                <th>Par\u00e2metro<\/th>\n                <th>Efeito Visual<\/th>\n            <\/tr>\n            <tr>\n                <td><code>pixel_art=True<\/code><\/td>\n                <td>Mant\u00e9m os pixels &#8220;crocantes&#8221; e quadrados. Ideal para jogos retr\u00f4.<\/td>\n            <\/tr>\n            <tr>\n                <td><code>pixel_art=False<\/code><\/td>\n                <td>Aplica filtro Bilinear (suaviza\u00e7\u00e3o). Ideal para HD e desenhos vetoriais.<\/td>\n            <\/tr>\n        <\/table>\n    <\/div>\n\n    <div class=\"doc-section\">\n        <h2>2. O Sagrado &#8220;Delta Time&#8221;<\/h2>\n        <p>Nunca mova personagens usando <code>x += 5<\/code>. Se um PC roda a 30 FPS e o outro a 144 FPS, o jogo ficar\u00e1 desequilibrado. Sempre multiplique pela fun\u00e7\u00e3o <code>janela.delta_time()<\/code>, que converte a velocidade para <strong>pixels por segundo<\/strong>.<\/p>\n        <pre class=\"doc-code\"><code>from PPlay.window import Window\n\njanela = Window(800, 600, \"Meu Jogo 2.0\", pixel_art=True)\npos_x = 0\n\nwhile True:\n    janela.set_background_color((15, 20, 30))\n    \n    # Move a exatos 200 pixels por segundo, independente do PC!\n    pos_x += 200 * janela.delta_time() \n    \n    janela.draw_text(f\"FPS: {int(janela.get_fps())}\", 10, 10, cor=\"green\")\n    \n    # O update finaliza o desenho e calcula o pr\u00f3ximo Delta Time\n    janela.update()<\/code><\/pre>\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A Janela e o Tempo (FPS) M\u00f3dulo: PPlay.window | Dificuldade: Iniciante A Window \u00e9 a espinha dorsal do seu jogo. Ela implementa o padr\u00e3o Singleton, o que significa que existe apenas uma janela gerenciando os gr\u00e1ficos, os eventos e a velocidade do jogo. 1. Resolu\u00e7\u00e3o Virtual (Anti-Blur) Na Power PPlay 2.0, voc\u00ea programa o jogo [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"tutorial-template.php","meta":{"footnotes":""},"_links":{"self":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/948"}],"collection":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/comments?post=948"}],"version-history":[{"count":1,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/948\/revisions"}],"predecessor-version":[{"id":950,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/948\/revisions\/950"}],"wp:attachment":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/media?parent=948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}