{"id":139,"date":"2024-06-07T09:00:46","date_gmt":"2024-06-07T12:00:46","guid":{"rendered":"http:\/\/pplay.local\/?page_id=139"},"modified":"2024-06-09T07:16:10","modified_gmt":"2024-06-09T10:16:10","slug":"colisoes-simples","status":"publish","type":"page","link":"http:\/\/www2.ic.uff.br\/pplay\/tutoriais\/colisoes-simples\/","title":{"rendered":"Colis\u00f5es Simples"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introdu\u00e7\u00e3o<\/h2>\n\n\n\n<p>No&nbsp;<em>PPlay<\/em>&nbsp;n\u00f3s temos dois&nbsp;modos de checar colis\u00f5es simples: pelo m\u00e9todo implementado em todo&nbsp;<a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><strong>GameObject<\/strong><\/a><a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><\/a>&nbsp;que pergunta se ele bateu em outro&nbsp;<a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><strong>GameObject<\/strong><\/a><a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><\/a>, ou pelo implementado na classe&nbsp;<a href=\"http:\/\/www2.ic.uff.br\/docs\/collision\"><strong>Collision<\/strong><\/a>&nbsp;que pergunta (de fora) se dois&nbsp;<a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><strong>GameObject<\/strong><\/a><a href=\"http:\/\/www2.ic.uff.br\/docs\/gameobject\"><\/a>&nbsp;colidiram.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eu bati nele?<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Como sempre, importamos nossa janela\nfrom PPlay.window import *\n# E agora o Sprite - que herda os m\u00e9todos de GameObject\nfrom PPlay.sprite import *\n\njanela = Window(500, 500)\nball1 = Sprite(\"graycreep.png\")\nball2 = Sprite(\"redcreep.png\")\n\n# Definir uma posi\u00e7\u00e3o inicial para cada uma delas\nball1.set_position(100, 0)\nball2.set_position(100, 400)\n\n# Velocidade\nball1_speed = 120  # POSITIVO \u00c9 PRA BAIXO!!!\nball2_speed = -120  # NEGATIVO \u00c9 PRA CIMA!!!\n\nwhile True:\n    janela.set_background_color((255, 255, 255))\n\n    # Irei mover ambas balls uma na dire\u00e7\u00e3o da outra\n    # EIXO Y POSITIVO \u00c9 PARA BAIXO!!!\n    ball1.move_y(ball1_speed * janela.delta_time())\n    ball2.move_y(ball2_speed * janela.delta_time())\n\n    # Checa se ball1 colidiu com ball2 (tanto faz a ordem)\n    # if(ball2.collided(ball1)):\n    if ball1.collided(ball2):\n        ball1_speed = 0  # fica no lugar\n        ball2_speed = 0\n        print(\"Colidiram em:\", ball2.y)\n\n    ball1.draw()\n    ball2.draw()\n\n    janela.update()\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5.2 \u2013 ELES dois bateram?<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Basta importar a classe Collision\nfrom PPlay.collision import*\n\n# E substituir a linha 28\n# if(ball1.collided(ball2)):\n# por...\nif(Collision.collided(ball1, ball2)):  # LETRA MAI\u00daSCULA! M\u00c9TODO DA CLASSE!\n    #...<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><a href=\"http:\/\/www2.ic.uff.br\/downloads\/tutoriais\/5.0_Colisoes.rar\"><\/a><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Download do C\u00f3digo Completo<\/mark><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Cr\u00e9ditos do Tutorial<\/strong>: Gabriel Saldanha<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o No&nbsp;PPlay&nbsp;n\u00f3s temos dois&nbsp;modos de checar colis\u00f5es simples: pelo m\u00e9todo implementado em todo&nbsp;GameObject&nbsp;que pergunta se ele bateu em outro&nbsp;GameObject, ou pelo implementado na classe&nbsp;Collision&nbsp;que pergunta (de fora) se dois&nbsp;GameObject&nbsp;colidiram. Eu bati nele? 5.2 \u2013 ELES dois bateram? Download do C\u00f3digo Completo Cr\u00e9ditos do Tutorial: Gabriel Saldanha<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":57,"menu_order":6,"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\/139"}],"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\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/comments?post=139"}],"version-history":[{"count":2,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/139\/revisions"}],"predecessor-version":[{"id":344,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/139\/revisions\/344"}],"up":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/57"}],"wp:attachment":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/media?parent=139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}