• Anmelden

1

Dienstag, 10. März 2009, 16:48

Wählenbildschirm Vollbild oder Normal

Nun es ist zwar kein ganzes Skript aber ich hoffe trotzdem, dass ich hier richtig bin.
Ich suche eine Ergänzung für main die eben abfragt ob man Vollbildmodus oder Normalmodus starten möchte! Wie ich auf Vollbild modus schalte weiß ich, ich weiß nur nicht, da ich blutiger Anfänger im Skripten bin, wie man eine Abfrage im Ruby Schreibt wie der Eventbefehl "Show Choice".

Woltte zum Vollbildmodus eben dieses hier benutzen:

Ruby Quellcode

1
2
3
4
5
6
7
unless $keybd
 $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
 $keybd.call 0xA4, 0, 0, 0
 $keybd.call 13, 0, 0, 0
 $keybd.call 13, 0, 2, 0
 $keybd.call 0xA4, 0, 2, 0
end

Hoffe ihr könnt mir helfen ;)

2

Dienstag, 10. März 2009, 17:04

Ok, hier ein Rohscript ohne schönes Design:
Spoiler: AuswahlScript

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#==============================================================================
# ** Scene_Fensterwahl
#------------------------------------------------------------------------------
#  (c) by Playm
#==============================================================================
 
class Scene_Fensterwahl
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    #Load Data
    $data_system        = load_data("Data/System.rxdata")
    # Make types of game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    # Make command window
    s1 = "Vollbild"
    s2 = "Fenstermodus"
    @command_window = Window_Command.new(192, [s1, s2])
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 240 - @command_window.height / 2
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame Update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of window
    @command_window.dispose
    # If switching to title screen
    if $scene.is_a?(Scene_Title)
      # Fade out screen
      Graphics.transition
      Graphics.freeze
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update command window
    @command_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # FensterModus
      command_fenster
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0  # VollbildModus
        command_vollbild
      when 1  # FensterModus
        command_fenster
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  def command_vollbild
    # Play decision SE
    $game_system.se_play($data_system.decision_se)# Play decision SE
    unless $keybd
      $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
      $keybd.call 0xA4, 0, 0, 0
      $keybd.call 13, 0, 0, 0
      $keybd.call 13, 0, 2, 0
      $keybd.call 0xA4, 0, 2, 0
    end
    $auswahl_getroffen = true
    $scene = Scene_Title.new
  end  #--------------------------------------------------------------------------
  def command_fenster
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    $auswahl_getroffen = true
    # Mach normal weiter
    $scene = Scene_Title.new
  end
end

zum Lesen den Text mit der Maus markieren


Und bei Main muss noch rein:
Unter Graphics.freeze

Ruby Quellcode

1
2
3
4
5
6
7
8
  #==============================================
  # Make scene object (title screen)
  if $auswahl_getroffen == true then
    $scene = Scene_Title.new
  else
    $scene = Scene_Fensterwahl.new
  end
  #===============================================


Damit solltest du $scene = Scene_Title.new ersetzten

So müsste das alles gehen.

3

Dienstag, 10. März 2009, 17:41

thx genau sowas hab ich gebraucht ohne großes Design nur ne einfache abfrage ;)

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

4

Dienstag, 10. März 2009, 17:54

hey Playm, ich wollt mal fragen, ob ich das auch verwenden darf^^

5

Dienstag, 10. März 2009, 18:01

Klar, darf jeder benutzen.
Wer will kann mir auch ein Credits Eintrag geben, ist aber nicht nötig.

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

6

Dienstag, 10. März 2009, 18:45

Oh man^^ würde ich für alles für dich n credits eintrag geben, hättest du nun drei xD

Danke du hilfst mir sehr mit meinem Projekt (Auch wenn es nicht allzugut rüberkommt xD)

7

Dienstag, 10. März 2009, 19:07

hey,

wenn du nicht willst, dass man die auflösung während dem spiel nicht mehr ändern kann, empfehle ich dir das hier!

@Playm: Wusstest du, dass dein 5-Zeiler auch mit einer zeile das gleiche bewirkt? ;)

Quellcode

1
2
3
4
5
6
7
8
  #==============================================
  # Make scene object (title screen)
  if $auswahl_getroffen == true then
    $scene = Scene_Title.new
  else
    $scene = Scene_Fensterwahl.new
  end
  #===============================================


Ruby Quellcode

1
$scene = $auswahl_getroffen ? Scene_Title.new : Scene_Fensterwahl.new


Damit kannst du dir so lange if ... then ... else -sachen sparen.

cow
Spoiler: Sachen
zum Lesen den Text mit der Maus markieren

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

8

Dienstag, 10. März 2009, 19:10

komisch, bei mir passiert gar nix. weder änderts den Bildmodus, noch kann ich etwas auswählen. (Ich habe mein Vollbildscript rausgemacht) Ich habe auch deinen anweisungen befolgt. Aber naja. Man kann es ja auch noch per alt + enter ändern.

Trotzdem Danke ;)

9

Dienstag, 10. März 2009, 19:16

@Sora: Das ist komisch, eigentlich sollte das Funktionieren, der Eigenversuch hat geklappt. Passiert gar nichts? Übrigens wenn der Vollbild Befehl zweimal ausgeführt wird, heben die sich gegenseitig auf.
Wenn du nichts auswählen kannst hast du das $scene= Scene_Title.new nicht ersetzt.


@Cow: Hatte ich irgendwo ganz klein und verstaubt im Hinterkopf, aber ich mag die Übersichtlichere Variante iregendwie lieber. Trotzdem hast du recht. Allerdings glaub ich das man bei deiner Variante immer nur ein 'tuDas' reinschreiben kann oder?

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

10

Dienstag, 10. März 2009, 19:42

@Playm: Also das ist so, ich habe alles gemacht, wie du geschrieben hast. Wenn ich mein Spiel starte, wechselt er in Vollbild und das Spiel startet. dann habe ich mein Vollbildscript, was vorher drinnen war rausgenommen. Nun startet es im fenster Modus, aber eine Frage, wie man es starten möchte, kommt immer noch nicht.

Ich glaube ich habe noch ein script drinnen, was auf Scene Title zugreift oder sowas. Kenn mich aber mit Ruby ÜBERHAUPT nicht aus. Naja, ich glaube, dass da entweder Kompatibilitätsprobleme auftauchen oder ich wirklich zu blöd bin^^ Ich lass das jetzt einfach so. Hast ja auch so schon viel mitgearbeitet an meinem projekt was scripte angeht^^

11

Dienstag, 10. März 2009, 19:51

Dieses Scrip ändert überhaut nichts an vorhandenen Scripten, du musst es nur einfügen und ganz unten im Script Main die Zeile:

Ruby Quellcode

1
$scene = Scene_Fensterwahl.new 

durch die Zeile:

Ruby Quellcode

1
$scene = $auswahl_getroffen ? Scene_Title.new : Scene_Fensterwahl.new

ersetzen und fertig.

So sollte es dann funktionieren.

PS: Danke Cow ;)

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

12

Dienstag, 10. März 2009, 19:53

ok, ich versuche es nochmal. mein vollbildscript muss raus, ne?

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

13

Dienstag, 10. März 2009, 19:55

Nein, er meint, dass er bereits ein SKript eingebaut hat, dass Scene_Title überschreibt.

@Sora: Such mal nach class Scene_Title in deinem Skript

/edit: Oder ich und Sora habens beide falsch verstanden^^
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

14

Dienstag, 10. März 2009, 20:00

@Playm: Es geht nicht.

@NB: Ok, ich durchsuch mal die scripte, ob ichs finde.

15

Dienstag, 10. März 2009, 20:01

Ihr könnt meinetwegen alle Scripte überschreiben, sollange Window_Base/ _Selectable und _Command drin sind reicht das.
Mehr benötigt mein Script gar nicht.

Dann nur noch die Abfrage in Main, und fertig.

Ach ja, es sollte vielleicht noch irgend ein Scene_Title da sein, da nach meinem Script, dieses aufgerufen wird, ob das das Original Script ist oder nicht, ist aber egal.

>Kompatibilitätsprobleme nur wenn Window_Base, Window_Selectable oder Window_Command fehlt

Edit: Sora könnte ich dein Projekt mal haben? Ich schau es mir dann an

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

16

Dienstag, 10. März 2009, 20:05

Also n script, das class Scene_Title beinhaltet habe ich gefunden. und zwar das Aufm Bildschirm (Playm sollte wissen, welches es ist). Weiter gekuckt habe ich jetzt nicht.

@Playm: Nein es sind eigendlich alle drei da.


Also irgendwie habe ich das gefühl, das immer ich die probleme mit den einfachsten scripts habe^^

17

Mittwoch, 11. März 2009, 14:24

also ich habs verstanden^^
ich versuchs auch ma zu erklären:
1. Skript Editor öffnen
2. Über Main ein neues Skript per rechtsklick auf main und dann auf"Insert"
3. in das leere Skript das Skript von Playm einfach reinkopiern
4. auf main klicken und in main nach der zeile suchen wo:

Ruby Quellcode

1
$scene = Scene_Title.new
(rechtsklick find benutzen)
5. Diese Zeile dann leer machen also $scene = Scene_Title.new löschen
6. in die nun leere Zeile folgendes einfügen:

Ruby Quellcode

1
$scene = $auswahl_getroffen ? Scene_Title.new : Scene_Fensterwahl.new

Sora

Knappe

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

18

Mittwoch, 11. März 2009, 14:42

okay, ich versuche es noch ein drittes mal^^ Villt klappt es ja jetzt (villt habe ich ja nur immer was falsch gemacht v.v)

PS: ist jetzt nicht böse gemeint, aber mindestens schritt 1-3 hättest du nicht aufschreiben brauchen xD
hab schön öfters scripte eingebaut. Villt habe ich ja immer ein fehler in Main gemacht (Was ich fürs wahrscheinlichste halte).


edit: Ok, ich verstehe es nicht, aber es Funktioniert^^
wahrscheinlich bin ich einfach zu dumm das einfachste zu verstehen.
Tut mir leid, das ich so viele Probleme wegen so nem simplen Script gemacht habe.

@Playm:
Das Design finde ich vollkommen in Ordnung, somit passt es sich ans Spiel an, da der Windowskin verwendet wird.

Nochmal vielen dank

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sora« (11. März 2009, 14:48)


Ähnliche Themen

Social Bookmarks