{"id":129,"date":"2026-07-27T14:58:12","date_gmt":"2026-07-27T12:58:12","guid":{"rendered":"https:\/\/mothratomic.dev\/?page_id=129"},"modified":"2026-07-27T16:13:39","modified_gmt":"2026-07-27T14:13:39","slug":"topdown","status":"publish","type":"page","link":"https:\/\/mothratomic.dev\/?page_id=129","title":{"rendered":"topdown"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">topdown 2d &#8211; mouvement<\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Concepts abord\u00e9s = {<br>Initialisation du joueur,<br>Position (x, y),<br>Vitesse de d\u00e9placement,<br>Lecture des entr\u00e9es clavier,&nbsp;<br>DeltaTime (dt),<br>love.update(dt),<br>love.draw()<br>}<br><br>R\u00e9sultat = {<br>D\u00e9placement (x, y) d\u2019un sprite 16\u00d716,<br>\u2013ind\u00e9pendamment du nombre d\u2019images&nbsp;par seconde<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Impl\u00e9mentation d\u2019un d\u00e9placement top down en lua<br>__ ________________________________<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">structure des fichiers<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">dossier parent = {<br>  &#8211; conf.lua<br>  &#8211; main.lua<br>  &#8211; dossier sprite<br>  &#8212; sprite.png<br>}<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\/\/main.lua<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"lua\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function love.load()\n    player = {}\n    player.x = 160                                -- position en x du player\n    player.y = 120                                -- position en y du player\n    player.speed = 2                              -- vitesse du player\n    player.sprite = \n    love.graphics.newImage(\"sprites\/player.png\")  -- sprite\n\nend\n------------------------------------------------------------\n\nfunction love.update(dt)\n\n    -- c o n t r o l l e r --\n\n    if love.keyboard.isDown(\"up\") then          -- mouvement haut\n        player.y = player.y - player.speed\n    end\n\n    if love.keyboard.isDown(\"down\") then        -- mouvement bas\n        player.y = player.y + player.speed\n    end    \n\n    if love.keyboard.isDown(\"right\") then       -- mouvement droite\n        player.x = player.x + player.speed\n    end\n\n    if love.keyboard.isDown(\"left\") then        -- mouvement gauche\n        player.x = player.x - player.speed\n    end\n\nend\n------------------------------------------------------------\n\nfunction love.draw()\n    love.graphics.draw(player.sprite, player.x, player.y) -- afficher un sprite (sprite, x, y)\nend\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">\/\/conf.lua<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function love.conf(t)\n    t.window.width = 360 -- Largeur de la fenetre\n    t.window.height = 240 -- Hauteur de la fenetre\n    t.window.resizable = true -- Laissez la fenetre \u00eatre redimensionnable\n    t.window.borderless = false -- Supprime toutes les bordures de la fenetre\nend\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/mothratomic.dev\/wp-content\/uploads\/2026\/07\/001.mov\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">Pour lancer le projet, glisser le dossier parent sur le launcher l\u00f6ve2d. <br>Ensuite, utiliser les fl\u00e8ches directionnels du clavier pour d\u00e9placer le sprite.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">t\u00e9l\u00e9chargement du projet = \/<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">topdown_lua.zip =<br>(\u00ab\u00a0main.lua, conf.lua, sprite.png\u00a0\u00bb)<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/mothratomic.dev\/wp-content\/uploads\/2026\/07\/topdown_lua.zip\">download<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>topdown 2d &#8211; mouvement Concepts abord\u00e9s = {Initialisation du joueur,Position (x, y),Vitesse de d\u00e9placement,Lecture des entr\u00e9es clavier,&nbsp;DeltaTime (dt),love.update(dt),love.draw()} R\u00e9sultat = {D\u00e9placement (x, y) d\u2019un sprite 16\u00d716,\u2013ind\u00e9pendamment du nombre d\u2019images&nbsp;par seconde} Impl\u00e9mentation d\u2019un d\u00e9placement top down en lua__ ________________________________ structure des fichiers dossier parent = { &#8211; conf.lua &#8211; main.lua &#8211; dossier sprite &#8212; sprite.png} \/\/main.lua [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-129","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/pages\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mothratomic.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=129"}],"version-history":[{"count":23,"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/pages\/129\/revisions"}],"predecessor-version":[{"id":168,"href":"https:\/\/mothratomic.dev\/index.php?rest_route=\/wp\/v2\/pages\/129\/revisions\/168"}],"wp:attachment":[{"href":"https:\/\/mothratomic.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}