{"id":102,"date":"2024-06-07T08:43:28","date_gmt":"2024-06-07T11:43:28","guid":{"rendered":"http:\/\/pplay.local\/?page_id=102"},"modified":"2024-06-20T20:06:22","modified_gmt":"2024-06-20T23:06:22","slug":"collision","status":"publish","type":"page","link":"http:\/\/www2.ic.uff.br\/pplay\/documentacao\/collision\/","title":{"rendered":"Collision"},"content":{"rendered":"\n<p>Classe para cuidar das colis\u00f5es entre dois&nbsp;objetos.&nbsp;Ela \u00e9 implementada nos&nbsp;<strong><a href=\"http:\/\/pplay.local\/documentacao\/gameobject\" data-type=\"page\" data-id=\"110\">GameObject<\/a><\/strong>&nbsp;e tamb\u00e9m pode ser usada diretamente como mostrado abaixo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Fun\u00e7\u00f5es da Classe<\/h2>\n\n\n\n<p><strong>Collision.collided(game_object1, game_object2)<\/strong><br>Retorna um&nbsp;<em>boolean<\/em>&nbsp;indicando se dois&nbsp;<strong><a href=\"http:\/\/pplay.local\/documentacao\/gameobject\" data-type=\"page\" data-id=\"110\">GameObject<\/a><\/strong>&nbsp;colidiram.<\/p>\n\n\n\n<p><strong>Collision.collided_perfect(gameimage1, gameimage2):<\/strong><br>Retorna um&nbsp;<em>boolean<\/em>&nbsp;indicando se pontos n\u00e3o transparentes de dois&nbsp;<strong><a href=\"http:\/\/pplay.local\/documentacao\/gameimage\" data-type=\"page\" data-id=\"107\">GameImage<\/a><\/strong>&nbsp;colidiram.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diferen\u00e7as entre&nbsp;<em>collided<\/em>&nbsp;e&nbsp;<em>collided_perfect<\/em><\/h3>\n\n\n\n<p>Apesar das duas fun\u00e7\u00f5es verificarem colis\u00f5es, existe uma diferen\u00e7a crucial entre as duas. A fun\u00e7\u00e3o&nbsp;<em>collided<\/em>&nbsp;verifica se houve colis\u00e3o entre qualquer ponto de duas imagens, ignorando transpar\u00eancias. Como, essencialmente toda as imagens s\u00e3o retangulares, muitas vezes o resultado do uso dessa fun\u00e7\u00e3o n\u00e3o \u00e9 exatamente o esperado:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"119\" height=\"124\" src=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/collided.png\" alt=\"\" class=\"wp-image-500\"\/><\/figure><\/div>\n\n\n<p>Por mais que a pedra n\u00e3o esteja realmente colidindo com a cobra, os limites das duas imagens est\u00e3o se sobrepondo. Logo,&nbsp;<em>collided<\/em>&nbsp;retorna&nbsp;<em>true<\/em>. Por\u00e9m, no caso de&nbsp;<em>collided_perfect<\/em>, a fun\u00e7\u00e3o retornaria&nbsp;<em>false<\/em>, pois ela verifica ponto a ponto, analisando o canal de transpar\u00eancia da imagem (canal alpha). Para uma colis\u00e3o ser considerada por esse m\u00e9todo, a pedra tem que efetivamente tocar a cobra, como no exemplo abaixo:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"119\" height=\"124\" src=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/collided_perfect.png\" alt=\"\" class=\"wp-image-501\"\/><\/figure><\/div>\n\n\n<p>Verifique em cada caso qual fun\u00e7\u00e3o \u00e9 mais indicada. Experimente utilizar em seu jogo uma de cada vez e verifique qual resultado \u00e9 mais interessante para voc\u00ea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Classe para cuidar das colis\u00f5es entre dois&nbsp;objetos.&nbsp;Ela \u00e9 implementada nos&nbsp;GameObject&nbsp;e tamb\u00e9m pode ser usada diretamente como mostrado abaixo. Fun\u00e7\u00f5es da Classe Collision.collided(game_object1, game_object2)Retorna um&nbsp;boolean&nbsp;indicando se dois&nbsp;GameObject&nbsp;colidiram. Collision.collided_perfect(gameimage1, gameimage2):Retorna um&nbsp;boolean&nbsp;indicando se pontos n\u00e3o transparentes de dois&nbsp;GameImage&nbsp;colidiram. Diferen\u00e7as entre&nbsp;collided&nbsp;e&nbsp;collided_perfect Apesar das duas fun\u00e7\u00f5es verificarem colis\u00f5es, existe uma diferen\u00e7a crucial entre as duas. A fun\u00e7\u00e3o&nbsp;collided&nbsp;verifica se houve colis\u00e3o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":38,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"document-template.php","meta":{"footnotes":""},"_links":{"self":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/102"}],"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=102"}],"version-history":[{"count":4,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/102\/revisions"}],"predecessor-version":[{"id":502,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/102\/revisions\/502"}],"up":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/38"}],"wp:attachment":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/media?parent=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}