Ergebnis 1 bis 20 von 1418

Thema: Technik-Sammelthread für Probleme und Antworten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ich erspare dir mal etwas Gesuche, was folgt sind meist Stückchen aus meinen Plugins. Das wird dir nicht die Arbeit abnehmen, aber vielleicht ein wenig dabei helfen. Viel Erfolg.

    Geändert von Corti (31.05.2013 um 15:55 Uhr)

  2. #2
    Überzeichnet dies auch den Text/Zahlen-Output, der im Menü normal erfolgen würde? (wird darunterliegender Text-Output resettet, bevor der neue gedruckt wird?)

  3. #3
    In onFrame mit Scene = Menu kannst du das ganze Bild überzeichnen, musst es aber in jedem Frame aufs neue tun.

  4. #4
    @Corti
    Ist es nicht einfacher ein Bild zu laden oder per DrawText was zu erzeugen und dieses RPG::Image dann einfach auf den RPG::screen->canvas zu zeichnen? Denn immerhin zeichnest du so auch "über" allem, da deine Draw-Funktion ja erst dann ausgeführt wird, wenn der Screen schon soweit fertig gezeichnet ist.

    @bugmenot
    Wie schon eben geschrieben: Im onFrame()-Callback zeichnest du über den - bis dahin schon komplett vom Maker gezeichneten - Bildschirm. Außer der ScreenTransition - ich glaube das ist das Einzige, was über allem steht.

    EDIT: Sehe gerade Corti war schneller^^

    PeAcE
    MorDen

    Geändert von Morden (31.05.2013 um 15:59 Uhr)

  5. #5
    @Morden: Hab bereits etwas reineditiert. Pixel sind da wirklich unnötig kompliziert, da war ich irgendwie betriebsblind als ich Codestücke aus meinem Plugin kopiert hab.


    Zitat Zitat
    Außer der ScreenTransition - ich glaube das ist das Einzige, was über allem steht.
    Im Kampfsystem die Menüs sind auch drüber.

  6. #6
    Zitat Zitat von Corti Beitrag anzeigen
    Im Kampfsystem die Menüs sind auch drüber.
    Tatsächlich? Ich muss gestehen, dass ich mich weniger mit DynRPG+StandardKS beschäftigt habe >.<
    Da würde mich jetzt glatt interessieren, ob die Standard-MessageBox auch über allem ist. Das werde ich heute Abend wohl mal ausprobieren^^

    EDIT: Ich hätte auch mal weiter denken können: Brauch doch denn einfach nur checken, ob onDrawSystemBackground() nach onFrame() ausgeführt wird >.< Dann könnte man in solch einem Fall nämlich einfach dort auf den Bildschirm zeichnen.

    PeAcE
    MorDen

    Geändert von Morden (31.05.2013 um 16:06 Uhr)

  7. #7
    Zitat Zitat von Morden Beitrag anzeigen
    Im Kampfsystem die Menüs sind auch drüber.
    Was? Über dem was du in onFrame gezeichnet hast? Das dürfte eigentlich nicht sein. Ich muss da mal nachforschen.

    Eigentlich sollten wirklich nur Screentransitions (und Movies, iirc - und eventuell "Frames" von System2 aber ich weiß grade nicht ob das stimmt) den Bildschirm nach onFrame manipulieren können. Alle Kampfgrafiken sollten von der draw-Methode von TLcfgBattleScene gezeichnet werden, und onFrame wird immer nach der draw-Methode der aktuellen Scene aufgerufen...

    "Über allem" kann man mit onDrawScreen zeichnen, aber das wird aufgerufen wenn aus Windows-Sicht der Fensterinhalt neu gezeichnet wird und das kann manchmal mehrmals beim selben Frame passieren, also sollte man beachten dass eventuell Sachen die man im vorigen onDrawScreen gezeichnet hat noch immer da sind.

    Zitat Zitat von Morden Beitrag anzeigen
    EDIT: Ich hätte auch mal weiter denken können: Brauch doch denn einfach nur checken, ob onDrawSystemBackground() nach onFrame() ausgeführt wird >.< Dann könnte man in solch einem Fall nämlich einfach dort auf den Bildschirm zeichnen.]
    Für die Messagebox? Eher nicht, denn onDrawSystemBackground bezieht sich nicht auf den Fensterhintergrund sondern auf den Menühintergrund (der normalerweise einfärbig ist). Das Callback ist dazu da, eigene Hintergründe zu zeichnen. Fenster erscheinen über dem Hintergrund, und auf der Map wird das sowieso nicht verwendet weil ja die Map da ist und kein Systemhintergrund.

    Geändert von Cherry (01.06.2013 um 13:23 Uhr)

  8. #8
    Zitat Zitat von Cherry Beitrag anzeigen
    Was? Über dem was du in onFrame gezeichnet hast? Das dürfte eigentlich nicht sein. Ich muss da mal nachforschen.
    Alarm zurück. War ein Irrtum meinerseits. Bitte um Verzeihung.

  9. #9
    Wie kriege ich es denn mit DynRPG hin, ein Bild anzuzeigen?
    Ich geh mal stark davon aus, dass das hiermit geht:


    Aber wie genau funktioniert das? ._.
    Bzw. der Teil mit dem Image...Ich hab mir jetzt ein Bild gemacht, welches ich dann einfach drüber legen würde. Aber wie sage ich dem Programm, dass es dieses Bild benutzen soll?

  10. #10
    // Variable anlegen
    RPG::Image *imageDings;

    //Bild laden
    imageDings = RPG::Image::create();
    imageDings->useMaskColor = true;
    imageDings->loadfromFile("Pictures\\Blabal.png",false);

    // Bild anzeigen
    RPG::screen->canvas->draw(x,y,imageDings,...);

    // Bildressource freigeben
    RPG::Image::destroy(imageDings);

    ________________________________________________________________________

    Laden würde ich in "onInitFinished" machen, destroy in "onExit"

    Geändert von Corti (01.06.2013 um 22:57 Uhr)

  11. #11
    Der Ordner heißt Picture, ohne "s" hinten, also Vorsicht beim Codekopieren, Quetschi!

  12. #12
    Ich krieg das nicht hin. Scheint so, als ob ich mich doch nur minimal mit C++ auskenne und das "bisschen" schon überschätzt war. :/
    Beim Compilen krieg ich keine Fehlermeldung und im Spiel (also im Menü) wird mir das Bild nicht angezeigt :/
    Würde sich einer von euch eventuell dazu bereit erklären mir so etwas schnell zu basteln oder mal über meinen Code zu schauen? :x


  13. #13
    Was tut das return-Statement da drinnen?

  14. #14
    Zitat Zitat von Quetschi Beitrag anzeigen
    Ich krieg das nicht hin. Scheint so, als ob ich mich doch nur minimal mit C++ auskenne und das "bisschen" schon überschätzt war. :/
    Beim Compilen krieg ich keine Fehlermeldung und im Spiel (also im Menü) wird mir das Bild nicht angezeigt :/
    Würde sich einer von euch eventuell dazu bereit erklären mir so etwas schnell zu basteln oder mal über meinen Code zu schauen? :x

    Deine Funktion existiert gar nicht und wird deshalb nicht aufgerufen!
    Das Callback heißt:
    Code:
    void onFrame(RPG::Scene scene)
    und nicht

    Code:
    bool onFrame(char*pluginName)
    Da dynloader.dll deine Funktion also dementsprechend nicht kennt, wird sie auch nie aufgerufen.

    Edit:
    Falsch ausgedrückt: Die Funktion existiert schon, du hast sie ja geschrieben. Nur versucht halt dynloader.dll eine void onFrame(RPG::Scene scene) Funktion aufzurufen, welche du ja nicht definiert und implementiert hast. Deshalb wird deine Funktion NICHT aufgerufen.

    @Cherry
    Oh danke, da habe ich dann wohl einfach total falsch gedacht - mein Fehler. Hatte SystemBackground jetzt mit dem MsgBox-Hintergrund gleichgesetzt. Aber danke, das wäre ich bestimmt früher oder später drüber gestolpert xD

    PeAcE
    MorDen

    Geändert von Morden (03.06.2013 um 17:34 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •