• Anmelden

Vortex Lord

Ankömmling

  • »Vortex Lord« ist der Autor dieses Themas

Motto: El psy congroo! Tempus edax rerum

  • Nachricht senden

1

Dienstag, 16. Juli 2013, 19:55

BGM pausieren wenn window nicht aktiv

Moin moin,

ich habe da mal eine Frage, und zwar ob es irgendwie möglich wäre die BGM zu pausieren während man sich nicht im Spiel befindet?
- oder eventuell abzutasten nach der aktuellen Laufzeitsekunde?

Denn ich habe folgendes Problem:
Viel Atmosphäre wird von der Musik meinem Spiel erzeugt. Z.b bei einem agressiveren Horror Soundtrack verändert sich an manchen Stellen das Sichtfeld des Spielers.

Alles gut und ohne Probleme, bis man mal aus dem Fenster vom RPGSpiel klickt.
Das Problem das nun auftritt ist das die Musik weiter läuft, aber nicht mehr Synchron zu meinen scripts ist.


Wäre sowas überhaupt möglich ohne den Maker komplett zu verändern?

Liebe Grüße

2

Mittwoch, 17. Juli 2013, 10:20

Ist ohne Weiteres nicht möglich. Als Alternative bietet sich Fullscreen mit Alt+Enter-Sperre an, was aber auch nicht das Gelbe vom Ei ist. Andererseits hat selbst so mancher AAA-Titel seine Probleme beim Minimieren, was bis zum Absturz reicht; insofern dürfte das schon in Ordnung gehen, vor allem bei einem Spiel wie deinem.
Bild

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Terv« (24. Juli 2013, 18:49)


FaÐe

Ankömmling

Motto: Ich verlasse mich auf meine Sinne; Irrsinn, Wahnsinn, Blödsinn.

  • Nachricht senden

3

Mittwoch, 17. Juli 2013, 11:00

Ich für meinen Teil spiele entweder sowieso im Vollbildmodus oder klicke nicht aus dem Fenster, ohne vorher das Menü zu öffnen.. Hab ich mir durch alle möglichen Spiele angewöhnt, in dem Menü = Pause ist. :D Ich denke auch, dass das in Ordnung gehen würde, wenn du es einfach so lässt.

Vortex Lord

Ankömmling

  • »Vortex Lord« ist der Autor dieses Themas

Motto: El psy congroo! Tempus edax rerum

  • Nachricht senden

4

Mittwoch, 17. Juli 2013, 15:27

@Terv

Schade, dass es da nicht irgendwas in der art gib ein patch oder sowas. Das Spiel startet auch standartmäßig im Vollbildmodus.
Das mit der Alt + Enter Sperre würde ich dann wohl Notlösung in erwägung ziehen, eventuell auch noch eine Alt + Tab Sperre.

Prinzipiell würde es mir auch genügen die BGM pos in einer variable festzuhalten um so die grenzen im Musikstück zu definieren in denen der Script triggert.
Vielleicht hat ja irgendwo, irgendein schlauer Kopf so ein Feature gescriptet welches erlaubt die BGM position zu bestimmen, was ich leider bezweifel xD

@FaÐe

Eigentlich würde ich auch nicht aus dem Fenster klicken^^ , außer ich werd in skype etc. plötzlich zugetextet.
Das ist mein Hintergedanke bei der ganzen Sache.

5

Mittwoch, 17. Juli 2013, 15:54

Prinzipiell würde es mir auch genügen die BGM pos in einer variable festzuhalten um so die grenzen im Musikstück zu definieren in denen der Script triggert.
Vielleicht hat ja irgendwo, irgendein schlauer Kopf so ein Feature gescriptet welches erlaubt die BGM position zu bestimmen, was ich leider bezweifel xD

Es gibt durchaus Audio-Module, mit denen Stoppen und Wiederaufnehmen von Sounds an bestimmten Punkten möglich ist (z.B. 1, 2); das Problem ist hier eher das Abfangen des Aus-dem-Fenster-klickens, welches gleichzeitig den RGSS-Core augenblicklich pausiert, ohne dass man davor irgendeinen Code ausführen könnte.

Eigentlich dürfte das mit dem RGSSPlayerEx sogar möglich sein, müsste sich mal einer mit Ahnung von C++ anschauen.
Bild

Vortex Lord

Ankömmling

  • »Vortex Lord« ist der Autor dieses Themas

Motto: El psy congroo! Tempus edax rerum

  • Nachricht senden

6

Mittwoch, 17. Juli 2013, 15:57

:golly: Thx, den Script hatte ich noch gar nicht endeckt gehabt.
Die
lösung mit dem "Aus dem Fenster klicken" wäre halt die Perfekte lösung
gewesen ohne irgend etwas weiteres einstellen zu müssen.
Aber das Audio Module schaut echt klasse aus, ich denke / hoffe mal das ich es damit dann gebacken bekomme!


Und ich höre mich mal etwas noch in anderen Foren um, vielleicht hat ja jemand das schon mit dem "RGSSPlayerEx" (was mir gerade gar nichts sagt) hinbekommen^^

tausendfachen Dank!!!

Kagu-chan

Alopex Lagopus

Motto: Ich Böse, Du Teufel

  • Nachricht senden

7

Mittwoch, 24. Juli 2013, 01:30

Du kannst mit dem Audio-Modul ne BGM an beliebige Stellen springen lassen.

Ein Workarround wäre also folgendes:

Per Frame die Graphics.update die aktuelle Position speichern lassen
Sobald die Graphics-Update 0.5 Sek nicht gerufen wurde (in der Regel nur durch Laggs oder eben durch auch "Aus dem Fenster klicken" verursacht), springt er zurück.

Damit hättest du es so, das wenn der Spieler raus klickt, zwar die Musik weiter läuft, allerdings wenn er wieder rein klickt, sie wieder dort einsetzt, wo sie jetzt eben sein sollte, nicht wo sie ist.

So habe ich ein mehr oder weniger zu effektives Tastatur-Skript ausbremsen können.

Siehe hier letzter Edit, dort wird der Workarround in anderem Kontext angewendet.
Thread
Bild

  • Hallo

    Tabs klicken unso, ne?
  • Lyric

    Meine schwarze Liste, beginnt mit einem Satz:
    "Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
    Auf der Liste meiner Feinde, ist auch für euch noch Platz
    Wer zuletzt lacht, lacht am besten!
    Merkt euch diesen Satz!

    Ode an die Feindschaft von Saltatio Mortis

  • Outtakes

    • Nummer 3
      20.09.2012 - 19:46
      "Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?"
    • Ich mag Kekse
    • Nummer 2
      08.09.2012 - 01:29 Uhr
      "Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"

      *Lachflash*
    • Nummer 1
      07.09.2012 - 22:58 Uhr
      *Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
      "Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
      "Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
  • Profile

    Bild
  • Ich

    Dass bin ich:

    Maker: RPG-XP, RPG-VX
    Story:
    Für andere mehr als für mich: 60%

    Grafik:
    Ich werde besser: 35%

    Pixeln:
    Ich stehe an den Anfängen: 7%

    Mapping:
    Es fehlen nur noch (alle) Feinheiten: 67%

    Scripting:
    Informatiker, mittlerweile auch andere Sachen am skripten: 93%
  • Neues aus der SB

    Neues aus der SB:

    Spoiler: Die Camper
    (03:41:36) Kagurame: n8 du
    (03:41:37) Irrlicht: Nacht Mozilla
    (03:41:47) MozillaBabybird: Kagu: der witz war flach
    (03:42:01) Kagurame: welcher witz?
    (03:42:14) Heatra: geh nicht benji
    (03:42:21) Heatra: spiel lieber ats2 :D
    (03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind :D
    (03:42:35) Kagurame: ich bin scripten
    (03:42:38) MozillaBabybird: Heat: tut mir sorry xD
    (03:42:40) Kagurame: ich mach das...^^
    (03:42:48) MozillaBabybird: bis .... mittag ?
    (03:42:49) Heatra: ^^
    (03:42:55) MozillaBabybird: ja mittag dürfte passen
    (03:42:56) MozillaBabybird: :D
    (03:42:57) Kagurame: ^^
    (03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
    (03:43:07) Kagurame: bis heute
    (03:43:11) Steve: MozillaBabybird verlässt den Chat.
    (03:43:15) Kagurame: ich so um 3
    zum Lesen den Text mit der Maus markieren


    Spoiler: Die Informatiker vom Dienst
    (03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
    (03:05:41) Ankou: oh
    (03:05:45) Ankou: okay
    (03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
    (03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
    (03:07:01) Heatra: maschine
    (03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
    (03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
    (03:07:08) Ankou: änder was konzeptionelles oder lass es bleiben.
    (03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
    (03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
    (03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
    (03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
    (03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
    (03:09:28) Heatra: -> lampenfieber
    (03:09:40) Asandril: Kann ich nur beipflichten.
    (03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
    (03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
    (03:11:23) Irrlicht: mal schaun :)
    zum Lesen den Text mit der Maus markieren


    Spoiler: Auch noch später^^
    (03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
    (03:32:48) Irrlicht: Cache.system("Iconset")
    bekommst das Iconset
    (03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
    (03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
    (03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
    (03:33:07) Irrlicht: Index berechnet sich einfach aus
    x = index % 16
    y = index / 16
    (03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
    (03:33:28) (Kagurame_AnkündigungImForumMach): ok, danke.
    (03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
    (03:34:01) Steve: (Kagurame_AnkündigungImForumMach​) heißt jetzt Kagurame.
    (03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
    (03:34:09) Steve: Kagurame ist nun Scripten!
    (03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
    (03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrt
    zum Lesen den Text mit der Maus markieren

Der Imperator

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

8

Mittwoch, 24. Juli 2013, 18:46

Starte einen seperaten Ruby-Thread und lese darin mit dem WinAPI aus, ob das Spiel-Fenster noch den Fokus hat. Bei Fokus-Wechsel triggerste halt Play/Pause.
  • :medal: Werbung

    Bild

    Cpp Quellcode

    1
    
    #define TRUE FALSE //Happy debugging suckers
    (Einfach nur wundervoll.)
  • :palette: 1plus3 :cake:

    Bild
  • :fires: Nuuuhminaaah

    Bild
  • :medal: compétences

    mes compétences
    :heart_full: :heart_full: :heart_full: :heart_full: :heart_full: max.
    :ruler-triangle: Maps machen :heart_full: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :media-player: Musik machen :heart_full: :heart-half: :heart-empty: :heart-empty: :heart-empty:
    :cup: Scripts machen :heart_full: :heart_full: :heart_full: :heart_full: :heart-break:
    :paper: Story ausdenken :heart_full: :heart_full: :heart_full: :heart-empty: :heart-empty:
    :cut: Pixeln und so :heart-empty: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :game: Events proggen :heart_full: :heart_full: :heart_full: :heart_full: :heart_full:
    (Dieser Tab ist rein satirisch.)
  • :folder-open: mes projets

    • :addressbook: Silentium
      :book: Name: Silentium
      :rmxp: Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)

      :paper: Story
      :game: NPCs
      :cup: Scripts
      :drill: Ressis
      :ruler-triangle: Maps
      :compile: Gesamt
      (3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²

      (Die Tabelle erfüllt lediglich satirische Zwecke.)
    • :compile: Onyx
      Eine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.

      :exclamation: Warnung!
      Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:
      • Compiler - Das Drachenbuch [978-3-8273-7097-6]
        Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.

      • Computerarchitektur [3-8273-7016-7]
        Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.

      Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3).
  • :locale: enfin

    Je ne peux pas parler français.
    C'est tout ce que Goodle et les restes de cours de français.
Signaturstand: 24.07.2013

Ähnliche Themen

Social Bookmarks