Aktuelle Zeit: 28.04.2024, 21:11

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bilder löschen?
BeitragVerfasst: 15.02.2009, 02:29 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
Hallo.
Wie kann ich Bilder löschen? (GUI säubern).

Die Bilder werden in einer extra funktion geladen, aber da es sich um png's handelt, werden diese nur überschrieben. kann man die GUI von Bildern säubern?

lg Micha

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 12:40 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
IGUIEnvironment::clear() bzw. IGUIElement::remove()

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 13:07 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
ah... thx ^^

PS:
Habs grad bei einem anderen thread auch gesehen -.-'

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 15:27 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
Hallo Nochmal!
Sry wegen dem Dopplepost, abe ich hab was, was ich hier nicht finden konnte ^^.
Und ich wollt deswegen keinen neuen thread aufmachen.

Wenn ich eine Scene (*.irr) lade, wie kann ich da herausbekommen, wie viel schon geladen wurde?
Also im Prinzip möchte ich einen Ladebalken erstellen^^.


EDIT:
Wie kann ich eigentlich die Engine beenden?
Wenn ich zum beispiel durch einen Druck auf ESC device->drop(); aufrufe.
Danach mach ich eine Ausgabe ( ich mein printf( "Hallo" ); ) und wart auf einen Tastendruck ( getch(); )...
Jetzt hab ich gedacht, das der das Fenster von Irrlicht schließt und normal in der Konsole weitermacht. Statdessen verabschiedet er sich, indem er das Fenster einfach da lässt -.-'
Könnt ihr mir helfen?


lg

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 16:23 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Zu 1.
Gar nicht. Eventuell könnte man da am source von irrlicht basteln, aber von haus aus gibts da keine möglichkeit.

Zu 2.
closeDevice()

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 17:03 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
mhm naja ok. Da muss ich meine Welt in Kleine abschnitte unterteilen ^^ und die seperat im Spiel bei gebrauch nachladen....

Danke für die Funktion.
So an sich funktioniert diese, aber wenn ich in einer anderen Funtion dann wieder Irrlicht starten möchte, dann schließt sich einfach das Programm. Ich hab aber keine ahnung warum.

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 17:21 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Ruf nach dem closeDevice() nochmal device->run() auf. Dann sollte es gehen

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 15.02.2009, 17:38 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
supa es funktioniert....
Danke =)

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 05.07.2010, 11:50 
Offline

Registriert: 05.07.2010, 11:41
Beiträge: 1
hallo ich bin neu hier und noch anfänger und habe auch gleich mal eine frage

ich habe mit irrlicht 3d folgendes zu testzwecken geschrieben.
ich habe ein bild was per mausposition eingeladen wird aber sofern die maus das bild die porsition wieder verläst löscht das bild nicht.
Ich möchte damit später einen Button simulieren der aus zwei bildern besteht und diese funktion soll die mousehover funktion sein .

hier mal der code .

Code:
#include <irrlicht.h>
#include "driverChoice.h"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif

int main()
{
        IrrlichtDevice *device =
        createDevice( video::EDT_DIRECT3D9, dimension2d<u32>(840, 680), 16,false, false, false, 0);
                       

        if (!device)
        return 1;

        device->setWindowCaption(L"Maustest und Bild anzeige");
        IVideoDriver* driver = device->getVideoDriver();
        IGUIEnvironment* env = device->getGUIEnvironment();

        while(device->run())
        {


            driver->beginScene(true, true, SColor(255,100,101,140));
            env->drawAll();
         
            irr::core::position2d<s32> Coords = device->getCursorControl()->getPosition();
           
         int x = Coords.X;
         int y = Coords.Y;

         if(x > 400 && x < 500 &&
            y > 400 && y < 500)
         {
              env->addImage(driver->getTexture("op-mo.png"),position2d<int>(300,300));
         }
      /*   else
         {
              IGUIElement::remove();      // IGUIEnvironment::clear();
         }*/
            device->setWindowCaption(Caption.c_str());
            driver->endScene();
        }
        device->drop();

        return 0;
}


jedes mal wenn ich IGUIElement::remove(); oder IGUIEnvironment::clear(); (zeile 47) einsetze bekomme ich immer die meldung :

Code:
...\maustest\main.cpp(60) : error C2352: 'irr::gui::IGUIElement::remove': Unzulässiger Aufruf einer nicht statischen Memberfunktion .


Warum geht das nicht ?
kann mir da einer weiterhelfen ?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bilder löschen?
BeitragVerfasst: 06.07.2010, 06:35 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Wenn du ein Objekt löschen willst, dann musst du einen Zeiger drauf speichen und die "remove" Methode von Diesem aufrufen. IGUIElement::remove() ist eine Klassen-Methode, dafür braucht der Compiler den Zusammenhang.

Code:
IGUIElement *image=NULL;

if(x > 400 && x < 500 &&  y > 400 && y < 500)
{
  image=env->addImage(driver->getTexture("op-mo.png"),position2d<int>(300,300));
}
else
{
  if (image!=NULL) { image->remove(); image=NULL; }
}


Ein weiteres Problem ist, dass bei deinen Snipsel jedes mal, wenn der Mousecursor ausserhalb des Rechtecks ist das Bild gelöscht würde, auch wenn es noch nicht angelegt wurde. Das ganze sollte lieber im EventReceiver gelöst werden. Schau dir mal die Tutorials an, da müsste das erklärt werden.

_________________
Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de