{"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\/fr\/2016\/09\/24\/you-cant-fly-because-of-your-lack-of-wings-component\/","title":{"rendered":"Diluer l&#8217;ECS"},"content":{"rendered":"<p style=\"text-align: center;\"><object width=\"450\" \u200b\u200b\u200b\u200b\u200b\u200bheight=\"478\"><param name=\"movie\" value=\"https:\/\/backend.deviantart.com\/embed\/ swf?1\" \/><param name=\"flashvars\" value=\"id=175079567&amp;width=1337\" \/><param name=\"allowScriptAccess\" value=\"always\" \/><\/objet><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>Dans cet article, je d\u00e9crirai grossi\u00e8rement le mod\u00e8le ECS et mon impl\u00e9mentation dans le Flame Steel Engine Game Toolkit. Le mod\u00e8le Entity Component System est utilis\u00e9 dans les jeux, incl. sur le moteur Unity. <strong>Chaque objet du jeu est une essence remplie de composants<\/strong>.\u00a0 Pourquoi est-ce n\u00e9cessaire s&#8217;il y a de la POO\u00a0?<br \/>Puis de modifier les propri\u00e9t\u00e9s, le comportement, l&#8217;affichage des objets directement pendant le d\u00e9roulement du jeu. De telles choses ne se trouvent pas dans les applications du monde r\u00e9el\u00a0; la dynamique de modification des param\u00e8tres, des propri\u00e9t\u00e9s des objets, de l&#8217;affichage et du son est plus caract\u00e9ristique des jeux que des logiciels de comptabilit\u00e9.<\/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 \/>\nNous n&#8217;avons pas pass\u00e9 de bananes<\/p>\n<p>Disons que nous avons un cours de banane dans notre jeu. Et le concepteur du jeu voulait que les bananes soient utilis\u00e9es comme armes. Disons que dans l\u2019architecture actuelle, les bananes n\u2019ont rien \u00e0 voir avec les armes. Faire d&#8217;une banane une arme ? Fabriquer tous les objets comme des armes\u00a0?<br \/>ECS propose une solution \u00e0 ce probl\u00e8me urgent : Tous les objets du jeu doivent \u00eatre constitu\u00e9s de composants. Auparavant, Banana \u00e9tait la classe Banana, nous allons maintenant la cr\u00e9er, ainsi que tous les autres objets, la classe Entity, en leur ajoutant des composants. Disons qu&#8217;une banane se compose d\u00e9sormais des composants suivants\u00a0:<\/p>\n<ol>\n<li>Composant de position (coordonn\u00e9es dans le monde du jeu\u00a0: x, y, z)<\/li>\n<li>Composant de rotation (coordonn\u00e9es x, y, z)<\/li>\n<li>Composant calorique d&#8217;une banane (le personnage principal ne doit pas trop grossir)<\/li>\n<li>Composant image banane<\/li>\n<\/ol>\n<p>Nous ajoutons maintenant un nouveau composant pour toutes les bananes, qui est un indicateur indiquant qu&#8217;elles peuvent \u00eatre utilis\u00e9es comme une arme &#8211;\u00a0; Composant d&#8217;arme. D\u00e9sormais, lorsque le syst\u00e8me de jeu voit qu&#8217;un joueur s&#8217;est approch\u00e9 d&#8217;une banane, il v\u00e9rifie la pr\u00e9sence d&#8217;un composant d&#8217;arme sur la banane, et si c&#8217;est le cas, il arme le joueur avec une banane.<br \/>Dans mon jeu Flame Steel Call Of The Death Mask, le motif ECS est utilis\u00e9 partout. Les objets sont constitu\u00e9s de composants et les composants eux-m\u00eames peuvent contenir des composants. En g\u00e9n\u00e9ral, diviser l&#8217;objet &lt; &#8211; > le composant manque dans mon impl\u00e9mentation, mais c&#8217;est m\u00eame un plus.<\/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>Le fusil de chasse dans cette capture d&#8217;\u00e9cran est un composant du joueur, et en m\u00eame temps, le deuxi\u00e8me fusil de chasse est simplement suspendu sur la carte du jeu comme un objet ordinaire.<br \/>Dans cette capture d&#8217;\u00e9cran, deux syst\u00e8mes sont en cours d&#8217;ex\u00e9cution\u00a0: moteur de rendu de sc\u00e8ne et moteur de rendu d&#8217;interface. Le moteur de rendu de sc\u00e8ne fonctionne avec le composant d&#8217;image de fusil de chasse <strong>sur la carte<\/strong>, le moteur de rendu d&#8217;interface fonctionne avec le composant d&#8217;image de fusil de chasse <strong>dans les mains du joueur<\/strong>.<\/p>\n<p>Liens connexes\u00a0:<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 Dans cet article, je d\u00e9crirai grossi\u00e8rement le mod\u00e8le ECS et mon impl\u00e9mentation dans le Flame Steel Engine Game Toolkit. Le mod\u00e8le Entity Component System est utilis\u00e9 dans les jeux, incl. sur le moteur Unity. Chaque objet du jeu est une essence remplie de composants.\u00a0 Pourquoi est-ce n\u00e9cessaire s&#8217;il<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/fr\/2016\/09\/24\/you-cant-fly-because-of-your-lack-of-wings-component\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Diluer l&#8217;ECS&#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":"fr","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\/fr\/wp-json\/wp\/v2\/posts\/773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/comments?post=773"}],"version-history":[{"count":23,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":4010,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/773\/revisions\/4010"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/media?parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/categories?post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/tags?post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}