{"id":10,"date":"2026-07-30T20:14:42","date_gmt":"2026-07-30T20:14:42","guid":{"rendered":"https:\/\/gamecodeur.animapix.fr\/?p=10"},"modified":"2026-07-30T20:14:42","modified_gmt":"2026-07-30T20:14:42","slug":"love2d-comprendre-boucle-de-jeu","status":"publish","type":"post","link":"https:\/\/gamecodeur.animapix.fr\/?p=10","title":{"rendered":"L\u00d6VE2D : comprendre la boucle de jeu en Lua"},"content":{"rendered":"<p>La boucle de jeu est le c\u0153ur de presque tous les jeux vid\u00e9o. Elle lit les entr\u00e9es du joueur, met \u00e0 jour le monde, puis dessine le nouvel \u00e9tat \u00e0 l\u2019\u00e9cran. Avec L\u00d6VE2D, cette organisation devient visible gr\u00e2ce \u00e0 quelques fonctions simples.<\/p>\n<h2>Les trois fonctions essentielles<\/h2>\n<p><code>love.load()<\/code> pr\u00e9pare les ressources au d\u00e9marrage. <code>love.update(dt)<\/code> met \u00e0 jour la logique du jeu, tandis que <code>love.draw()<\/code> affiche le r\u00e9sultat.<\/p>\n<pre><code>function love.load()\n  joueur = { x = 100, y = 100, vitesse = 180 }\nend\n\nfunction love.update(dt)\n  if love.keyboard.isDown(\"right\") then\n    joueur.x = joueur.x + joueur.vitesse * dt\n  end\nend\n\nfunction love.draw()\n  love.graphics.rectangle(\"fill\", joueur.x, joueur.y, 32, 32)\nend<\/code><\/pre>\n<h2>Pourquoi utiliser delta time ?<\/h2>\n<p>La valeur <code>dt<\/code> repr\u00e9sente le temps \u00e9coul\u00e9 depuis l\u2019image pr\u00e9c\u00e9dente. Multiplier la vitesse par cette valeur garantit un d\u00e9placement r\u00e9gulier, m\u00eame si le nombre d\u2019images par seconde varie.<\/p>\n<h2>Votre premier exercice<\/h2>\n<p>Ajoutez les d\u00e9placements vers la gauche, le haut et le bas. Emp\u00eachez ensuite le joueur de sortir de la fen\u00eatre. Vous aurez d\u00e9j\u00e0 construit une petite boucle interactive compl\u00e8te.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D\u00e9couvrez comment update(), draw() et delta time travaillent ensemble pour faire vivre votre premier jeu L\u00d6VE2D.<\/p>\n","protected":false},"author":0,"featured_media":14,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[7,6],"class_list":["post-10","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lua-et-love2d","tag-love2d","tag-lua"],"_links":{"self":[{"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10"}],"version-history":[{"count":0,"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=\/wp\/v2\/posts\/10\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=\/wp\/v2\/media\/14"}],"wp:attachment":[{"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamecodeur.animapix.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}