{"id":773,"date":"2016-09-24T11:26:43","date_gmt":"2016-09-24T11:26:43","guid":{"rendered":"http:\/\/demensdeum.com\/blog\/?p=773"},"modified":"2024-12-16T22:32:50","modified_gmt":"2024-12-16T19:32:50","slug":"you-cant-fly-because-of-your-lack-of-wings-component","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/pt\/2016\/09\/24\/you-cant-fly-because-of-your-lack-of-wings-component\/","title":{"rendered":"Diluindo SEC"},"content":{"rendered":"<p style=\"text-align: center;\"><object width=\"450\" \u200b\u200b\u200b\u200bheight=\"478\"><param name=\"movie\" value=\"https:\/\/backend.deviantart.com\/embed\/ visualizar. swf?1\" \/><param name=\"flashvars\" value=\"id=175079567&amp;width=1337\" \/><param name=\"allowScriptAccess\" value=\"always\" \/><\/objeto><br \/><a href=\"http:\/\/culpeo-fox.deviantart.com\/art\/Commission-Mad-Scientist-175079567\">Commission: Mad Scientist<\/a> by <span class=\"username-with-symbol u\"><a class=\"u premium username\" href=\"http:\/\/culpeo-fox.deviantart.com\/\">Culpeo-Fox<\/a><\/span> on <a href=\"http:\/\/www.deviantart.com\">DeviantArt<\/a><\/p>\n<p>Neste artigo descreverei aproximadamente o padr\u00e3o ECS e minha implementa\u00e7\u00e3o no Flame Steel Engine Game Toolkit. O padr\u00e3o Entity Component System \u00e9 usado em jogos, incl. no motor Unity. <strong>Cada objeto no jogo \u00e9 uma Ess\u00eancia preenchida com Componentes<\/strong>.\u00a0 Por que isso \u00e9 necess\u00e1rio se existe POO?<br \/>Em seguida, altere as propriedades, comportamento e exibi\u00e7\u00e3o de objetos diretamente durante a execu\u00e7\u00e3o do jogo. Essas coisas n\u00e3o s\u00e3o encontradas em aplicativos do mundo real; a din\u00e2mica de altera\u00e7\u00e3o de par\u00e2metros, propriedades de objetos, exibi\u00e7\u00e3o e som \u00e9 mais caracter\u00edstica de jogos do que de software de contabilidade.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/ZOVDayozSm0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\nN\u00e3o passamos bananas<\/p>\n<p>Digamos que temos uma classe de banana em nosso jogo. E o designer do jogo queria que as bananas fossem usadas como armas. Digamos que na arquitetura atual as bananas n\u00e3o tenham nada a ver com armas. Fazendo de uma banana uma arma? Fazer todos os itens armas?<br \/>A ECS oferece uma solu\u00e7\u00e3o para este problema premente &#8211; Todos os objetos do jogo devem consistir em componentes. Anteriormente banana era a classe Banana, agora faremos ela, e todos os outros objetos, a classe Entity, adicionando componentes a eles. Digamos que uma banana agora consiste nos seguintes componentes:<\/p>\n<ol>\n<li>Componente de posi\u00e7\u00e3o (coordenadas no mundo do jogo &#8211; x, y, z)<\/li>\n<li>Componente de rota\u00e7\u00e3o (coordenadas x, y, z)<\/li>\n<li>Componente cal\u00f3rico de uma banana (o personagem principal n\u00e3o deve engordar muito)<\/li>\n<li>Componente de imagem de banana<\/li>\n<\/ol>\n<p>Agora estamos adicionando um novo componente para todas as bananas, que \u00e9 um sinalizador de que elas podem ser usadas como arma &#8211; Componente de arma. Agora, quando o sistema do jogo v\u00ea que um jogador se aproximou de uma banana, ele verifica a presen\u00e7a de um componente de arma na banana e, se isso acontecer, arma o jogador com uma banana.<br \/>No meu jogo Flame Steel Call Of The Death Mask, o padr\u00e3o ECS \u00e9 usado por toda parte. Os objetos s\u00e3o compostos de componentes e os pr\u00f3prios componentes podem conter componentes. Em geral, dividir o objeto &lt; &#8211; &gt; o componente est\u00e1 faltando na minha implementa\u00e7\u00e3o, mas isso \u00e9 at\u00e9 uma vantagem.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-778\" src=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2016\/09\/Screenshot_2016-09-24_14-33-43.png\" alt=\"screenshot_2016-09-24_14-33-43\" width=\"802\" height=\"625\" srcset=\"https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2016\/09\/Screenshot_2016-09-24_14-33-43.png 802w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2016\/09\/Screenshot_2016-09-24_14-33-43-300x234.png 300w, https:\/\/demensdeum.com\/blog\/wp-content\/uploads\/2016\/09\/Screenshot_2016-09-24_14-33-43-768x599.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/p>\n<p>A espingarda nesta captura de tela \u00e9 um componente do jogador e, ao mesmo tempo, a segunda espingarda simplesmente fica pendurada no mapa do jogo como um objeto comum.<br \/>Nesta captura de tela, h\u00e1 dois sistemas em execu\u00e7\u00e3o &#8211; renderizador de cena e renderizador de interface. O renderizador de cena funciona com o componente de imagem shotgun <strong>no mapa<\/strong>, o renderizador de interface funciona com o componente de imagem shotgun <strong>nas m\u00e3os do jogador<\/strong>.<\/p>\n<p>Links relacionados:<br \/><a href=\"https:\/\/habrahabr.ru\/post\/197920\/\" target=\"_blank\">https:\/\/habrahabr.ru\/post\/197920\/<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=NTWSeQtHZ9M\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=NTWSeQtHZ9M<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Commission: Mad Scientist by Culpeo-Fox on DeviantArt Neste artigo descreverei aproximadamente o padr\u00e3o ECS e minha implementa\u00e7\u00e3o no Flame Steel Engine Game Toolkit. O padr\u00e3o Entity Component System \u00e9 usado em jogos, incl. no motor Unity. Cada objeto no jogo \u00e9 uma Ess\u00eancia preenchida com Componentes.\u00a0 Por que isso \u00e9 necess\u00e1rio se existe POO?Em seguida,<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/pt\/2016\/09\/24\/you-cant-fly-because-of-your-lack-of-wings-component\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Diluindo SEC&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49,61],"tags":[64],"class_list":["post-773","post","type-post","status-publish","format-standard","hentry","category-blog","category-techie","tag-ecs","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"pt","enabled_languages":["en","ru","zh","de","fr","ja","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":false,"content":false,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=773"}],"version-history":[{"count":23,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":4010,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/773\/revisions\/4010"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}