EventHandling Joystick Wie baue ich einen Joystick ein ?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
BOYI
User
Beiträge: 3
Registriert: Sonntag 23. Februar 2020, 22:30

Code: Alles auswählen

import pygame
from pygame.locals import *

class EventHandler(object):

    def __init__(self, main):
        self.main = main
        self.userEvents = {}
        self.userEventsNum = 0
        # SONG_END = pygame.USEREVENT + 1
        self.KEYDOWN_event = {}
        self.KEYUP_event = {}
        self.KEYPRESSED_event = {}
        self.MOUSEBUTTONDOWN_event = {}
        self.MOUSEBUTTONUP_event = {}
        self.JOYBUTTONDOWN_event = {}
        self.KEYDOWN_listener = []
        self.JOYBUTTONDOWN_listener = []

    def tick(self):
        pygame.joystick.init()
        for event in pygame.event.get():               
                          
            if event.type == QUIT:
                self.main.quit()


            

            for i in self.userEvents:
                if event.type == i:
                    self.userEvents[i](event)

            self.checkForEvent(event, KEYDOWN, self.KEYDOWN_event, True)
            self.checkForEvent(event, KEYUP, self.KEYUP_event, True)
            self.checkForEvent(event, MOUSEBUTTONDOWN,
                               self.MOUSEBUTTONDOWN_event, False)
            self.checkForEvent(event, MOUSEBUTTONUP,
                               self.MOUSEBUTTONUP_event, False)
##


             
            
            

            if event.type == KEYDOWN:
                for i in self.KEYDOWN_listener:
                    i(event.key)


        if self.main.loop:
            keys_presed = pygame.key.get_pressed()
            joy_presed = pygame.button.get_numbuttons()

            for i in self.KEYPRESSED_event:
                if keys_presed[i]:
                    for func in self.KEYPRESSED_event[i]:
                        func()
            for f in self.pygame.button.get_numbuttons():
                if joy_presed[f]:
                    for func in self.pygame.button.get_numbuttons[f]:
                        func()
                


    def checkForEvent(self, event, checkEvent, functions, key):
        if event.type == checkEvent:
            try:
                if key:
                    functionsFIN = functions[event.key]
                else:
                    functionsFIN = functions[event.button]
                for i in functionsFIN:
                        i()
            except:
                pass
    def registerUserEvent(self, function):
        self.userEventsNum += 1
        event = pygame.USEREVENT + self.userEventsNum
        self.userEvents[event] = function
        return event

    def unregisterUserEvent(self, event):
        del(self.userEvents[event])

    def unregisterUserEventsAll(self):
        self.userEvents = {}


    def registerKEYDOWNevent(self, key, function):
        try:
            temp = self.KEYDOWN_event[key]
            temp.append(function)
            self.KEYDOWN_event[key] = temp
        except:
            self.KEYDOWN_event[key] = [function]

    def unregisterKEYDOWNeventAll(self, key):
        del(self.KEYDOWN_event[key])

    def unregisterKEYDOWNevent(self, key, function):
        try:
            self.KEYDOWN_event[key].remove(function)
        except:
            pass

    def unregisterKEYDOWNeventAllKeys(self):
        self.KEYDOWN_event = {}


##    def registerJOYBUTTONDOWNevent(self, joybutton, function):
##        try:
##            temp = self.JOYBUTTONDOWN_event[button]



##            temp.append(function)
##            self.JOYBUTTONDOWN[joybutton] = temp
##        except:
##            self.JOYBUTTONDOWN_event[joybutton] = [function]
##
##    def unregisterJOYBUTTONDOWNeventAll(self, joybutton):
##        del( self.JOYBUTTONDOWN_event[joybutton])
##
##    def unregisterJOYBUTTONDOWNevent(self, joybutton, function):
##        try:
##            self. self.JOYBUTTONDOWN_event[joybutton].remove(function)
##        except:
##            pass
##    def unregisterJOYBUTTONDOWNeventAllKeys(self):
##        self.JOYBUTTONDOWN_event = {}

        




    def registerKEYUPevent(self, key, function):
        try:
            temp = self.KEYUP_event[key]
            temp.append(function)
            self.KEYUP_event[key] = temp
        except:
            self.KEYUP_event[key] = [function]

    def unregisterKEYUPeventAll(self, key):
        del(self.KEYUP_event[key])

    def unregisterKEYUPevent(self, key, function):
        try:
            self.KEYUP_event[key].remove(function)
        except:
            pass

    def unregisterKEYUPeventAllKeys(self):
        self.KEYUP_event = {}

    def registerKEYPRESSEDevent(self, key, function):
        try:
            temp = self.KEYPRESSED_event[key]
            temp.append(function)
            self.KEYPRESSED_event[key] = temp
        except:
            self.KEYPRESSED_event[key] = [function]

    def unregisterKEYPRESSEDeventAll(self, key):
        del(self.KEYPRESSED_event[key])

    def unregisterKEYPRESSEDevent(self, key, function):
        try:
            self.KEYPRESSED_event[key].remove(function)
        except:
            pass

    def unregisterKEYPRESSEDeventAllKeys(self):
        self.KEYPRESSED_event = {}

    def registerMOUSEBUTTONDOWNevent(self, button, function):
        try:
            temp = self.MOUSEBUTTONDOWN_event[button]
            temp.append(function)
            self.MOUSEBUTTONDOWN_event[button] = temp

        except KeyError:
            self.MOUSEBUTTONDOWN_event[button] = [function]

    def unregisterMOUSEBUTTONDOWNeventAll(self, button):
        del(self.MOUSEBUTTONDOWN_event[button])


    def unregisterMOUSEBUTTONDOWNevent(self, button, function):
        try:
            self.MOUSEBUTTONDOWN_event[button].remove(function)
        except:
            pass

    def unregisterJOYBUTTONDOWNeventAllKEys(self):
        self.JOYBUTTONDOWN_event = {}

    def registerJOYBUTTONDOWNevent(self, button, function):  
        try:
            temp = self.JOYBUTTONDOWN_event[button]
            temp.append(function)
            self.JOYBUTTONDOWN_event[button] = temp

        except KeyError:
            self.JOYBUTTONDOWN_event[button] = [button]

    def unregisterJOYBUTTONDOWNeventAll(self, button):
        del(self.JOYBUTTONDOWN_event[button])


    def unregisterJOYBUTTONDOWNDOWNevent(self, button, function):
        try:
            self.JOYBUTTONDOWNDOWN_event[button].remove(function)
        except:
            pass

    def unregisteJOYBUTTONDOWNDOWNeventAllKEys(self):
        self.JOYBUTTONDOWN_event = {}



    def registerMOUSEBUTTONUPevent(self, button, function):
        try:
            temp = self.MOUSEBUTTONUP_event[button]
            temp.append(function)
            self.MOUSEBUTTONUP_event[button] = temp
        except KeyError:
            self.MOUSEBUTTONUP_event[button] = [function]

    def unregisterMOUSEBUTTONUPeventAll(self, button):
        del(self.MOUSEBUTTONUP_event[button])

    def unregisterMOUSEBUTTONUPevent(self, button, function):
        try:
            self.MOUSEBUTTONUP_event[button].remove(function)
        except:
            pass

    def unregisterMOUSEBUTTONUPeventAllKEys(self):
        self.MOUSEBUTTONUP_event = {}


    def registerKEYDOWNlistener(self, function):
        self.KEYDOWN_listener.append(function)

    def unregisterKEYDOWNlistener(self, function):
        del self.KEYDOWN_listener[self.KEYDOWN_listener.index(function)]

    def unregisterAllKEYDOWNlisteners(self):
        self.KEYDOWN_listener = []
Zuletzt geändert von BOYI am Sonntag 23. Februar 2020, 22:51, insgesamt 2-mal geändert.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte die Code-Tags benutzen. Und mir fehlt die Frage 🤷🏼‍♂️
BOYI
User
Beiträge: 3
Registriert: Sonntag 23. Februar 2020, 22:30

oh sorry bin ziemlich neu :)
ich wollte fragen wie ich in diesen eventhandler noch einen joystick einbauen kann so das ich zugriff auf die buttons habe
Antworten