Étiqueté : 

Vous lisez 1 fil de discussion
  • Auteur
    Messages
    • #71454
      hbx
      Participant

      Hello, je suis en train de faire l’atelier GUI pur code et j’en suis pour ajouter une font mais je n’y arrive pas, j’ai une erreur : « GCGUI.lua:79: attempt to call method ‘getWidth’ (a nil value) »

      Dans mon main.lua j’ai mis comme ça :

      function love.load()
          local panelTest1 = myGUI.newPanel(10, 350, 300, 200)
          local panelImg = myGUI.newPanel(200, 350)
          panelImg:setImage(love.graphics.newImage("_gfx/panel1.png"))
          groupTest = myGUI.newGroup()
          groupTest:addElement(panelTest1)
          groupTest:addElement(panelImg)
          
          local textTest1 = myGUI.newText(10, 20, 30, 40, "SALUT", "_gfx/kenvector_future_thin.ttf", "center", "center")
          groupTest:addElement(textTest1)
      end
      
      function love.update(dt)
      
      end
      
      function love.draw()
          groupTest:draw()
      end
      

      Et dans GCGUI.lua :

      function GCGUI.newText(pX, pY, pW, pH, pText, pFont, pHAlign, pVAlign)
          local myText = GCGUI.newPanel(pX, pY, pW, pH)
          myText.Text = pText
          myText.Font = pFont
          myText.TextW = pFont:getWidth(pText)
          myText.TextH = pFont:getHeight(pText)
          myText.HAlign = pHAlign
          myText.VAlign = pVAlign
      
          function myText:drawText(pRed, pGreen, pBlue, pAlpha)
              love.graphics.setColor(pRed, pGreen, pBlue, pAlpha)
              love.graphics.setFont(self.Font)
              local x = self.x
              local y = self.y
              if self.HAlign == "center" then
                  x = x + ((self.W - self.TextW) / 2)
              end
              if self.VAlign == "center" then
                  y = y + ((self.H - self.TextH) / 2)
              end
              love.graphics.print(self.Text, x, y)
          end
      
          function myText:draw(pRed, pGreen, pBlue, pAlpha)
              if self.Visible == false then return end
              self:drawText(pRed, pGreen, pBlue, pAlpha)
          end
      
          return myText
      end

      Voilà, Merci.

    • #71456
      duruti
      Participant

      il parvient pas à accéder a ta méthode, le nil c’est qu’elle n’existe pas.
      tu transmets en faites le chemin pour ta font mais tu la charge pas, donc il peut pas accéder à la méthode getWidth() de la font.
      Il faut soit passer en parametre ta font deja crée, soit lui donner le chemin comme tu fais et ensuite la charger dans ta fonction function GCGUI.newText

Vous lisez 1 fil de discussion
  • Vous devez être connecté pour répondre à ce sujet.