!!! warning "Ce site est en cours de construction !" ``` Ce site est actuellement en cours de développement. Vous pensez pouvoir contribuer ? Cliquez simplement sur l'icône en forme de crayon située à droite de la page ! Vous pouvez également contribuer à n'importe quelle autre page. ``` # Créer une fenêtre ImGui Cette page explique comment créer une fenêtre ImGui basique. ## Configuration Avant d'utiliser ImGui, une petite configuration est nécessaire : ```lua local im = ui_imgui -- raccourci pour éviter de rechercher ui_imgui à chaque utilisation. Cela peut aider à optimiser les performances. local imguiExampleWindowOpen = im.BoolPtr(true) ``` `imguiExampleWindowOpen` sera utilisé pour déterminer si la fenêtre d'exemple doit être affichée. ## Affichage de la fenêtre Les fenêtres ImGui ainsi que leur contenu doivent être recréés à chaque image où elles doivent être affichées. Il est donc nécessaire d'utiliser une fonction `onUpdate` ou un mécanisme similaire. ```lua local function onUpdate() if worldReadyState == 2 then if imguiExampleWindowOpen[0] == true then imguiExample() end end end M.onUpdate = onUpdate ``` Cette fonction exécutera `imguiExample()` pour créer la fenêtre d'exemple, à condition que le niveau soit complètement chargé et que la fenêtre soit configurée pour être visible. ## Contenu de la fenêtre Si vous débutez avec ImGui, vous pouvez le considérer comme un lointain cousin du HTML : * `im.SetNextWindowSize(im.ImVec2(x, y), im.Cond_FirstUseEver)` définit la taille de la fenêtre si celle-ci n'a pas encore été configurée. * `im.Begin()` et `im.End()` correspondent approximativement à `
` et ``. * `im.Text()` correspond approximativement à ``. ```lua local buttonPresses = 0 local function imguiExample() im.SetNextWindowSize(im.ImVec2(366, 100), im.Cond_FirstUseEver) -- prépare notre fenêtre im.Begin("Bonjour, je suis une fenêtre") -- crée une fenêtre avec ce titre im.Indent() -- ajoute un retrait im.Text("Bonjour, je suis du texte.") -- ajoute une ligne de texte, similaire à un élémentim.SameLine() -- permet de placer l'élément suivant sur la même ligne if im.Button("Le bouton Bonjour") then -- similaire à