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
    Wenn man ein Projekt startet, kann man mit F1 ein Optionsfenster aufrufen, während das Spiel läuft. Damit lässt sich auch die Tastenbelegung verändern.
    Damit kann aber jeder Spieler für sich die Tasten verändern.

  2. #2
    @bluedragon05:
    Ich will aber ne eigene Spielsteuerung .... also quasi dem Spieler ne Spielsteuerung vor die nase setzen ... wenn dem das net passt kann der immer noch umstellen, aber erstma will ich ne völlig eigene, manuelle Steuerung via Pfeiltasten und Num 4, 5, 6 und 8 hinkriegen .....

    Ich hatte mir gedacht das so zu machen:
    Num4: laufen
    Num5: sprechen/Aktionstaste etc.
    Num6: Esc/ABbruch etc.
    Num8: Menü ...
    Pfeiltasten: Richtung

    im Notfall nehm ich halt das im maker vorgegebene mit "w" "a" "s" "d" ..., aber ich würd das gern mit den Num-Tasten machen ....

    Müsste nur wissen wie ...

  3. #3
    Wenn du mit den Standard-Tasten des Makers nicht zufrieden bist, musst du dir eben ein Tastenscript besorgen. Das gebräuchlichste ist ja von Cybersam. Allerdings finde ich die Version von Astro_Mech schöner - sie benötigt allerdings SDK.

    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
    #===============================================================================
    #-------------------------------------------------------------------------------
    # Begin SDK Enabled Check
    #-------------------------------------------------------------------------------
    SDK.log("Input", "Cybersam", 2, "11.04.06")
    
    module Input
      if SDK.state("Input") == true
      #--------------------------------------------------------------------------
      # * 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
    end
    
    #-------------------------------------------------------------------------------
    # End SDK Enabled Check
    #-------------------------------------------------------------------------------
    Zum Abfragen nutzt du dann wie gewohnt ein Conditional Branch, wählst dort allerdings nicht Button sondern Script aus und gibst ein:
    Code:
    Input.pressed?(Numberpad[0]) or Input.pressed?(Numberkeys[0])
    (statt 0 kannst du natürlich auch andere Tasten abfragen)

  4. #4
    @-KD-:
    Danke, das klingt vielversprechend ...

    Nur was muss ich mit diesem SDK-Script machen? Muss ich den separat in die Scriptliste einfügen, oder was muss ich damit machen? (ich kenne mich halt noch net mit Ruby und so aus)

    Also ich hab diese SDk-Scripte in die Scriptliste eingefügt, aber irgendwie klappt das nicht ... da kommt ne Fehlermeldung das SDK-Skripte fehlen oder so ...

    danach hab ich nur SDK Part I eingefügt und da hat der auch gemeckert ...

    Ich brauch da mal ne wirklich Idiotensichere Erklärung ...

    Geändert von K.L.R.G. (11.04.2007 um 11:13 Uhr)

  5. #5
    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

  6. #6
    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 ....

  7. #7
    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

  8. #8
    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.

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


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

  11. #11
    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:


  12. #12
    Wie sieht denn deine Buttonabfrage aus?

Berechtigungen

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