Ergebnis 1 bis 20 von 23

Thema: Button-Input-Funktions-Frage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Das SDK musst du über Main und unter allen Standard-Scripten einfügen. Alle weiteren selbst hinzugefügten Scripte müssen unter das SDK. Jedoch laufen mit SDK nur noch SDK-Scripte, fast alle anderen Scripten dürften nicht mehr laufen.

    Und wenn ich es mir recht überlege, ist es ziemlicher Schwachsinn für ein Input-Script SDK zu verlangen oO

    Für diesen Code statt dem anderen ein, dann benötigst du kein SDK mehr:

    Code:
    #===============================================================================
    # ** Keyboard Script v2 - This script was first created by Cybersam and she 
    #                         deserves most of the credit, all I did was add a few 
    #                         functions. (Astro_Mech says)
    #-------------------------------------------------------------------------------
    # Author    Cybersam
    # Version   2.0
    # Date      11-04-06
    # Edit      Astro_mech
    #===============================================================================
    module Input
      #--------------------------------------------------------------------------
      # * Variable Setup
      #-------------------------------------------------------------------------- 
        @keys = []
        @pressed = []
        Mouse_Left = 1
        Mouse_Right = 2
        Mouse_Middle = 4
        Back= 8
        Tab = 9
        Enter = 13
        Shift = 16
        Ctrl = 17
        Alt = 18
        Esc = 27
        Space = 32
        Numberkeys = {}
        Numberkeys[0] = 48        # => 0
        Numberkeys[1] = 49        # => 1
        Numberkeys[2] = 50        # => 2
        Numberkeys[3] = 51        # => 3
        Numberkeys[4] = 52        # => 4
        Numberkeys[5] = 53        # => 5
        Numberkeys[6] = 54        # => 6
        Numberkeys[7] = 55        # => 7
        Numberkeys[8] = 56        # => 8
        Numberkeys[9] = 57        # => 9
       # NumberUpKeys = {}
       # NumberUpKeys[0] = "!"
       # NumberUpKeys[1] = "@"
       # NumberUpKeys[2] = "#"
       # NumberUpKeys[3] = "$"
       # NumberUpKeys[4] = "%"
       # NumberUpKeys[5] = "^"
       # NumberUpKeys[6] = "&"
       # NumberUpKeys[7] = "*"
       # NumberUpKeys[8] = "("
       # NumberUpKeys[9] = ")"
        Numberpad = {}
        Numberpad[0] = 45
        Numberpad[1] = 35
        Numberpad[2] = 40
        Numberpad[3] = 34
        Numberpad[4] = 37
        Numberpad[5] = 12
        Numberpad[6] = 39
        Numberpad[7] = 36
        Numberpad[8] = 38
        Numberpad[9] = 33
        Letters = {}
        Letters["A"] = 65
        Letters["B"] = 66
        Letters["C"] = 67
        Letters["D"] = 68
        Letters["E"] = 69
        Letters["F"] = 70
        Letters["G"] = 71
        Letters["H"] = 72
        Letters["I"] = 73
        Letters["J"] = 74
        Letters["K"] = 75
        Letters["L"] = 76
        Letters["M"] = 77
        Letters["N"] = 78
        Letters["O"] = 79
        Letters["P"] = 80
        Letters["Q"] = 81
        Letters["R"] = 82
        Letters["S"] = 83
        Letters["T"] = 84
        Letters["U"] = 85
        Letters["V"] = 86
        Letters["W"] = 87
        Letters["X"] = 88
        Letters["Y"] = 89
        Letters["Z"] = 90
        Fkeys = {}
        Fkeys[1] = 112
        Fkeys[2] = 113
        Fkeys[3] = 114
        Fkeys[4] = 115
        Fkeys[5] = 116
        Fkeys[6] = 117
        Fkeys[7] = 118
        Fkeys[8] = 119
        Fkeys[9] = 120
        Fkeys[10] = 121
        Fkeys[11] = 122
        Fkeys[12] = 123
        Collon = 186        # => \ |
        Equal = 187         # => = +
        Comma = 188         # => , <
        Underscore = 189    # => - _
        Dot = 190           # => . >
        Backslash = 191     # => / ?
        Lb = 219
        Rb = 221
        Quote = 222         # => '"
    #-------------------------------------------------------------------------------
        USED_KEYS = [Mouse_Left, Mouse_Right, Mouse_Middle] 
    #-------------------------------------------------------------------------------
      module_function
      #--------------------------------------------------------------------------
      # * Check (key)
      #-------------------------------------------------------------------------- 
      def triggerd?(key)
        Win32API.new("user32","GetAsyncKeyState",['i'],'i').call(key) & 0x01 == 1  # key 0
      end
      #-------------------------------------------------------------------------- 
      def check(key)
        Win32API.new("user32","GetAsyncKeyState",['i'],'i').call(key) & 0x01 == 1  # key 0
      end
      #-----------------------------------------------------------------------
      # * Pressed ? (key)
      #-------------------------------------------------------------------------- 
      def pressed?(key)
        return true unless Win32API.new("user32","GetKeyState",['i'],'i').call(key).between?(0, 1)
        return false
      end
      #--------------------------------------------------------------------------
      # * Mouse Update
      #-------------------------------------------------------------------------- 
      def mouse_update
        @used_i = []
        for i in USED_KEYS
          x = check(i)
          if x == true
            @used_i.push(i)
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Short Write C
      #-------------------------------------------------------------------------- 
      def self.C
        self.trigger?(C)
      end
      #--------------------------------------------------------------------------
      # * Short Write B
      #-------------------------------------------------------------------------- 
      def self.B
        self.trigger?(B)
      end
      #--------------------------------------------------------------------------
      # * Short Write A
      #-------------------------------------------------------------------------- 
      def self.A
        self.trigger?(A)
      end
      #--------------------------------------------------------------------------
      # * Short Write Down
      #-------------------------------------------------------------------------- 
      def self.Down
        self.trigger?(DOWN)
      end
      #--------------------------------------------------------------------------
      # * Short Write Up
      #-------------------------------------------------------------------------- 
      def self.Up
        self.trigger?(UP)
      end
      #--------------------------------------------------------------------------
      # * Short Write Right
      #-------------------------------------------------------------------------- 
      def self.Right
        self.trigger?(RIGHT)
      end
      #--------------------------------------------------------------------------
      # * Short Write Left
      #-------------------------------------------------------------------------- 
      def self.Left
        self.trigger?(LEFT)
      end
      #--------------------------------------------------------------------------
      # * Anykey pressed?  ( A or B or C or Down or Up or Right or Left )
      #-------------------------------------------------------------------------- 
      def self.Anykey
        if A or B or C or Down or Up or Right or Left
          return true
        else
          return false
        end
      end
    end

  2. #2
    Nochmals danke ...
    Jetzt gibt es nur ein Problem ... Wo in der Scriptliste muss ich dieses Script eintragen? Bzw. was muss ich eingeben um den aufzurufen ... Ich hab den jetzt auf die erste Postion unter "main" gesetzt, kann den aber nicht aufrufen, ohne das der maker abstürzt ....

  3. #3
    Zitat Zitat
    Das SDK musst du über Main und unter allen Standard-Scripten einfügen.
    Wenn du es unter Main einfügst stürzt das ganze Spiel ab. Ist meines Wissens nach bei jedem Script so. Da lag also dein Fehler

  4. #4
    Im Main-Script wird das Spiel praktisch gestartet. Alles was unter Main ist, wird erst beim Beenden des Spiels aufgerufen ^^

    Daher müssen Scripte stets über Main eingefügt werden.

  5. #5
    So, hab jetzt alles richtig gemacht ... über main ... unter den anderen Scripts. ... und trotzdem krieg ich diese Fehlermeldung ...


  6. #6
    In der letzten Zeile dürfte nur ein "end" stehen. Steht bei dir dort noch etwas anderes? Z.B. das [/code] aus dem Posting.

  7. #7
    Gut, Fehlerquelle 1 ist ausgemerzt ... ich hatte tatsächlich nen kleinen Fehler beim kopieren gemacht (nein es war nicht [/code], aber irgendwie hab ich da ausversehen was mit reinkopiert ... )

    Nun klappt es ... theoretisch ... aber sobald ich ne Button-Input-Abfrage mache bricht das Ding jetzt zusammen mit folgender Fehlermeldung:


  8. #8
    Wie sieht denn deine Buttonabfrage aus?

  9. #9
    Code:
    Input.pressed?(Numberpad[0]) or Input.pressed?(Numberkeys[0])
    Erst die Button Input-Abfrage ... hab dann den Code in ner Fork eingegeben .... eigentlich sollte dann n text erscheinen wenn ich 0 drücke, stattdessen kommt immer diese Fehlermeldung ...

  10. #10
    mach die ganze variablendeklaration in ne funktion (def initialize) und initialisier die klasse mit WieAuchImmerDieKlasseJetztHeißt.new ...

    edit: glaub nämlich nicht, dass in Ruby variablen initialisiert werden können, wenns nicht in ner funktion stehen^^

  11. #11
    @ani-kun:
    Ähm ... bitte nochmal in TotalN00b-Verständlich bitte ...

  12. #12
    aaaaaaaalso xD

    du packst alles ab "Variable Setup" bis "module_functions" in eine funktion:

    def initialize
    ...
    end

    dort wo "..." steht packst du das zeug rein (erste zeile sollte "@keys = []" sein, letzte sollte "USED_KEYS = [Mouse_Left, Mouse_Right, Mouse_Middle]" sein)

    dann musst du die ganze klasse noch initialisieren, einfach in der Klasse Main vor "$scene = Scene_Title.new" ne zeile mit zb. "$input = Input.new"

    allerdings musst du dann deine button abfrage mit "$input.pressed?(etc)" machen ...

    edit: kann natürlich auch total falsch liegen, habs nicht getestet, aber das diktiert mir zumindest mein programmiererverständnis^^

Berechtigungen

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