Bild wird nicht angzeigt

  • Hallo,


    ich beschäftige mich seit gestern mit lua und wollte einfach mal das store.png auf den Bildschrim zaubern. Allerdings bekomme ich bei folgendem Code immer den Error: "Error: Can't load resource: store.png". Die store.png befindet sich natürlich im gleichen Vz wie die lua. Wäre cool wenn mir jemand einen Tipp geben könnte.
    [lua]print(" TestMod loaded");



    TestMod = {};


    function TestMod:loadMap(name)
    overlayId = createImageOverlay("store.png");
    print("Die overlay id ist "..overlayId);
    end;


    function TestMod:deleteMap()
    end;


    function TestMod:mouseEvent(posX, posY, isDown, isUp, button)
    end;


    function TestMod:keyEvent(unicode, sym, modifier, isDown)
    end;


    function TestMod:update(dt)
    end;


    function TestMod:draw()
    renderText(0.835, 0.610, 0.021, "Works gut");


    end;


    addModEventListener(TestMod);
    [/lua]


    mfg Jojo

  • bei dem code fehlt aber was, den ls weis ja garned wo auf dem monitor das bild angezeigt werden soll.
    versuchs mal so:


    [lua]print(" TestMod loaded");



    TestMod = {};


    function TestMod:loadMap(name)
    self.hudInfoBasePosX = 0.833; -- position auf der x achse
    self.hudInfoBaseWidth = 0.17; -- breite des bildes (muss auf dein bild angepasst werden)
    self.hudInfoBasePosY = 0.1725; -- position auf der y achse
    self.hudInfoBaseHeight = 0.55; -- höhe des bildes (muss auch entsprechend angepasst werden)
    self.infoPanelPath = Utils.getFilename("store.png", self.baseDirectory);
    self.hudInfoBaseOverlay = Overlay:new("hudInfoBaseOverlay", self.infoPanelPath, self.hudInfoBasePosX, self.hudInfoBasePosY, self.hudInfoBaseWidth, self.hudInfoBaseHeight);
    self.showHudInfoBase = true;
    print("Die overlay id ist "..overlayId);
    end;


    function TestMod:deleteMap()
    end;


    function TestMod:mouseEvent(posX, posY, isDown, isUp, button)
    end;


    function TestMod:keyEvent(unicode, sym, modifier, isDown)
    end;


    function TestMod:update(dt)
    end;


    function TestMod:draw()
    renderText(0.835, 0.610, 0.021, "Works gut");
    self.hudInfoBaseOverlay:render();
    end;


    addModEventListener(TestMod);[/lua]


    hab das aber jetz nich getestet :whistling:


    PS: pack mal das bild in den ordner (zip) vom mod (nicht in nen unterordner) und eine kopie in den ordner wo die lua drin is. weis grad ned von wo er auf das bild zugreifen will, aber ich denke der wird als erstes im hauptverzeichniss suchen, und wens da nich drin is findet ers nich

  • Hi,


    danke erstmal für deine schnelle Antwort. Leider tritt der Fehler von oben weiterhin auf. Ich weiß das bei mir oben das Bild nicht angzeigt wird, aber das war Absicht weil ich es erstmal laden wollte (was ja nicht klappt). Wahrscheinlich steh ich gerade auf dem Schlauch ;)


    mfg Jojo

  • Leute warum packt ihr das immer unter "loadMap" ?? Bei genauem lesen sollte man doch schon stutzig werden!


    vllt so in der Art? Ist ein kleiner Auszug aus meinem HUD:
    [lua]
    --
    -- InformationHUD
    -- Specialization for an extra HUD
    --
    -- @author: FIAT80-90DT
    -- @date: 04/02/11
    -- @version: v1.0
    -- @history: v1.0



    InfomationHUD = {};


    function InfomationHUD.prerequisitesPresent(specializations)
    return true;
    end;


    function InfomationHUD:load(xmlFile)


    self.HUD = {};
    self.HUD.xPos = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.HUD#posX"), 0.770);
    self.HUD.yPos = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.HUD#posY"),0.35);
    self.HUD.width = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.HUD#width"),0.26);
    self.HUD.height = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.HUD#height"),0.55);

    self.HUDOverlay = Overlay:new("hudHUDOverlay", Utils.getFilename("DEIN_HUD.png", self.baseDirectory), self.HUD.xPos, self.HUD.yPos, self.HUD.width, self.HUD.height);

    self.HUDisOn = true;

    --self.keyType = InputBinding.getKeyNamesOfDigitalAction;
    end;


    function InfomationHUD:delete()
    end;


    function InfomationHUD:readStream(streamId, connection)
    end;


    function InfomationHUD:writeStream(streamId, connection)
    end;


    function InfomationHUD:mouseEvent(posX, posY, isDown, isUp, button)
    end;


    function InfomationHUD:keyEvent(unicode, sym, modifier, isDown)
    end;


    function InfomationHUD:update(dt)

    if self:getIsActiveForInput() then
    if InputBinding.hasEvent(InputBinding.TURN_HUD) then
    self.HUDisOn = not self.HUDisOn;
    end;

    end;
    end;


    function InfomationHUD:updateTick(dt)
    end;


    function InfomationHUD:draw()


    if self.isEntered and self:getIsActiveForInput() then
    if self.HUDisOn then
    renderText(0.835, 0.610, 0.021, "Works gut");
    self.HUDOverlay:render();
    end;
    end;
    end;
    [/lua]



    Die größe kann(muss aber nicht) in der xml angepasst werden ;)

  • Hast du das ganze als <extraSourceFile> eingebunden?


    Dann mach es so:


    [lua]RadioMod.modDirectory = g_currentModDirectory;
    self.volumeOverlay0 = createImageOverlay(RadioMod.modDirectory .. "volume0.png");[/lua]


    Du musst den Pfad absolut angeben!


    Gruß
    Wagenheber

  • Laut dem GDN geht das eigentlich über Utils.getFilename(string file, string directory).
    Beispielsweise so:
    [lua]local file = Utils.getFilename("panel.png", self.baseDirectory);
    self.overlay = Overlay:new("Name", file, posX, posY, width, height);
    self.overlay:render();[/lua]


    Hat FIAT80-90DT ja auch in seinem Code verwendet.


    lg

  • self.baseDirectory gibt es in extraSourceFiles nicht, nur in specializations.



    Vielen Dank, das ist es. Allerdings funktioniert es mit Wagenhebers Code auch als extraSourceFile. Kann man pauschal sagen wann man was nehmen sollte, gibts da irgendwie unterschiede ?


    Und das "g_currentModDirectory" ist ja eine globale Variable vom Spiel aus, da gibts ja noch mehr die alle mit "g_" anfangen. Gibt es da irgendwo eine Übersicht mit allen verfügbaren ?


    Vielen Dank an alle schomal, Jojo

  • so ich brauch auch Hilfe zu diesem Thema. Und zwar möcht ich ein Overlay einbelenden, aber in extraSourceFiles.


    Dazu brauch ich ja den Code von Wagenheber. Jedoch weiß ich noch nicht so ganz wie ich den richtig einbauen soll.
    Bisher siehts so aus, läuft aber nicht.


    [lua]function Handthrottle:load(xmlFile)
    self.overlayhandthrottlexPos = 0.7543;
    self.overlayhandthrottleyPos = 0.2715;
    Handthrottle.modDirectory = g_currentModDirectory;
    self.HUDHandthrottle = createImageOverlay(Handthrottle.modDirectory .. "Handthrottle_hud.png");
    self.handthrottleOverlay = Overlay:new("hudHandthrottleOverlay", self.HUDHandthrottle, self.overlayhandthrottlexPos, self.overlayhandthrottleyPos, 0.2371, 0.039525);
    end;


    function Handthrottle:draw()
    if self.handthrottleEnabled then
    self.handthrottleOverlay:render();
    end;
    end;[/lua]


    pAre

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!