Esempio n. 1
0
    def __init__(self, resolution):
        '''Настройка pygame дисплея'''
        self.resolution = resolution
        self.background = pygame.Surface(self.resolution)
        self.background.fill((254, 65, 43))

        pygame.init()

        self.screen = pygame.display.set_mode(self.resolution,
                                              pygame.FULLSCREEN)
        self.init()
        '''Список хендлеров'''
        self.keydown_handlers = defaultdict(list)
        self.keyup_handlers = defaultdict(list)
        self.mouse_handlers = []
        '''Камера и объекты'''
        self.camera = Camera(self.resolution)
        self.objects = pygame.sprite.Group()
        self.mobs = pygame.sprite.Group()
        '''Создание игрока'''
        self.player = Player(80, 120, self)
        self.player.set_controller(self.keydown_handlers, self.keyup_handlers,
                                   self.mouse_handlers)
        self.objects.add(self.player)
        '''Мировые эффекты и события'''
        self.action_list = []
        '''Добавляю тест-объекты'''
        for i in range(2):
            brick = Brick(32 + config.width_brick * i * 2, 360, self)
            self.objects.add(brick)
            mob = Mob(32, 180 + config.width_mob * i * 2, self)
            self.objects.add(mob)
            self.mobs.add(mob)

        self.camera.apply(self.objects)
Esempio n. 2
0
    def __init__(self, x, y, level, screen, dashboard, sound, gravity=0.75):
        super(Mario, self).__init__(x, y, gravity)
        self.spriteCollection = Sprites().spriteCollection
        self.camera = Camera(self.rect, self)
        self.sound = sound
        self.input = Input(self)
        self.inAir = False
        self.inJump = False
        self.animation = Animation(
            [
                self.spriteCollection["mario_run1"].image,
                self.spriteCollection["mario_run2"].image,
                self.spriteCollection["mario_run3"].image,
            ],
            self.spriteCollection["mario_idle"].image,
            self.spriteCollection["mario_jump"].image,
        )

        self.traits = {
            "jumpTrait": jumpTrait(self),
            "goTrait": goTrait(self.animation, screen, self.camera, self),
            "bounceTrait": bounceTrait(self),
        }

        self.levelObj = level
        self.collision = Collider(self, level)
        self.screen = screen
        self.EntityCollider = EntityCollider(self)
        self.dashboard = dashboard
        self.restart = False
        self.pause = False
        self.pauseObj = Pause(screen, self, dashboard)
Esempio n. 3
0
    def __init__(self, size, fps, client_name):
        """ init block """
        pygame.init()
        pygame.font.init()
        pygame.joystick.init()
        """ display block """

        self.request_list = []

        self.resolution = size
        self.fps = fps
        self.icon = None
        self.caption = "Caster-Game"
        self.screen = pygame.display.set_mode(self.resolution,
                                              pygame.RESIZABLE)
        self.camera = Camera(self.resolution)

        self.camera_target = None
        self.is_camera_target = False

        self.name = client_name

        self.init()
        """ input block """

        # self.joys = [pygame.joystick.Joystick(i) for i in range(pygame.joystick.get_count())]
        # for j in self.joys:
        #     j.init()
        """ handlers block """

        self.keydown_handlers = defaultdict(list)
        self.keyup_handlers = defaultdict(list)
        self.mouse_handlers = []
        self.event_list = []
        """ game const block """

        self.play = True
        self.output = []
        """ interface block """

        self.buttons = ButtonGroup()
        """ ingame block """

        self.objects = GameGroup()
        self.background = pygame.Surface(self.resolution)
        self.background.fill((254, 65, 43))
        self.session = None
Esempio n. 4
0
	def __init__(self):
		super(self.__class__, self).__init__()
		self.setupUi(self) 

		#przypisuje konkretną funkcję do przycisku i sygnał
		self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
		self.setStyleSheet(open("resources/style.qss", "r").read())
		self.show()

		self.Back.clicked.connect(lambda: self.closeBackCamcorderStream())
		
		#tworze etykiete, w której wyświetlą się ramki QPixmap "pobrane" z kamerki
		self.VideoLabel = QLabel(self)
		#ustalam pozycję i wymiary: x, y, szerokość, wysokość
		self.VideoLabel.setGeometry(QtCore.QRect(0, 0, 840, 540))
		
		#Rysuję przycisk zrób zdjęcie
		self.TakePhoto=RadioPlayWindow.drawControlFMButton(self,"TakePhoto",860,160,"#26d8fc","camera.png")
		self.TakePhoto.clicked.connect(lambda: self.takePhoto())
		self.TakePhoto.show()
		#dodaje rysowanie etykiety
		self.TakePhotoLabel=RadioPlayWindow.drawControlButtonLabel(self,860,320,"Zrób zdjęcie")
		self.TakePhotoLabel.show()
		
		#tworze nowy wątek
		self.ThreadStream = QThread()
		#tworzę obiekt, który dziedziczy po QObject
		#dzięki niemu będzie możliwość obsługi slotów i sygnałów
		self.WorkerStream = Camera("/dev/BackCamcorder")
		
		#jeśli obiekt klasy Camera wyślę sygnał "StreamSignal", który zawiera w sobie obiekt QPixmap
		#to funkcja streamFromBackWebcam() go obsłuży
		#czyli "wklei" go do etykiety VideoLabel, a potem tę etykietę wyświetli
		self.WorkerStream.StreamSignal.connect(self.streamFromBackWebcam)
		
		#przenoszę obiekt WorkerStream do nowego wątku
		self.WorkerStream.moveToThread(self.ThreadStream)
		
		#jeśli obiekt klasy Camera, wyślę sygnał FinishedSignal, to wątek, który obsługiwał streamowanie się zakończy
		self.WorkerStream.FinishedSignal.connect(self.ThreadStream.quit)
		
		#jeśli nowy wątek zostanie uruchomiony to
		#zostanie wykonana funkcja startCamcorderStream() z klasy Camera 
		self.ThreadStream.started.connect(self.WorkerStream.startCamcorderStream)
		
		#uruchamiam nowy wątek
		self.ThreadStream.start()
Esempio n. 5
0
    def __init__(self, x, y, level, screen, dashboard, sound, gravity=0.75):
        super(Mario, self).__init__(x, y, gravity)
        self.x = x
        self.spriteCollection = Sprites().spriteCollection
        self.CT = CollisionTester()
        self.camera = Camera(self.rect, self)
        self.sound = sound
        self.level = level
        self.OI = Input(self)
        self.closest_mob = None
        self.closest_object = None
        self.output =0
        self.inAir = False
        self.brain = Model().share_memory()
        self.fitness = 0

        self.animation = Animation(
            [
                self.spriteCollection["mario_run1"].image,
                self.spriteCollection["mario_run2"].image,
                self.spriteCollection["mario_run3"].image,
            ],
            self.spriteCollection["mario_idle"].image,
            self.spriteCollection["mario_jump"].image,
        )

        self.traits = {
            "jumpTrait": jumpTrait(self),
            "goTrait": goTrait(self.animation, screen, self.camera, self),
            "bounceTrait": bounceTrait(self),
        }

        self.levelObj = level
        self.collision = Collider(self, level)
        self.screen = screen
        self.EntityCollider = EntityCollider(self)
        self.dashboard = dashboard
        self.restart = False
        self.pause = False
        self.pauseObj = Pause(screen, self, dashboard)
Esempio n. 6
0
	def __init__(self):
		super(self.__class__, self).__init__()
		self.setupUi(self) 
		self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
		self.setStyleSheet(open("resources/style.qss", "r").read())
		#wyświetlam pusty formularz, na którym się wyświetli stream z kamery
		self.show()
		
		self.Back.clicked.connect(lambda: self.closeFrontCamcorderStream())

		#tworze etykiete, w której wyświetlą się ramki QPixmap "pobrane" z kamerki
		self.VideoLabel = QLabel(self)
		#ustalam pozycję i wymiary: x, y, szerokość, wysokość
		self.VideoLabel.setGeometry(QtCore.QRect(0, 0, 840, 540))

		#tworze nowy wątek
		self.ThreadStream = QThread()
		#tworzę obiekt, który dziedziczy po QObject
		#dzięki niemu będzie możliwość obsługi slotów i sygnałów
		self.WorkerStream = Camera("/dev/FrontCamcorder")
		
		#jeśli obiekt klasy Camera wyślę sygnał "StreamSignal", który zawiera w sobie obiekt QPixmap
		#to funkcja streamFromFrontWebcam() go obsłuży
		#czyli "wklei" go do etykiety VideoLabel, a potem tę etykietę wyświetli
		self.WorkerStream.StreamSignal.connect(self.streamFromFrontWebcam)
		
		#przenoszę obiekt WorkerStream do nowego wątku
		self.WorkerStream.moveToThread(self.ThreadStream)
		
		#jeśli obiekt klasy Camera, wyślę sygnał FinishedSignal, to wątek, który obsługiwał streamowanie się zakończy
		self.WorkerStream.FinishedSignal.connect(self.ThreadStream.quit)
		
		#jeśli nowy wątek zostanie uruchomiony to
		#zostanie wykonana funkcja startFrontCamcorderStream() z klasy Camera 
		self.ThreadStream.started.connect(self.WorkerStream.startCamcorderStream)
		
		#uruchamiam nowy wątek
		self.ThreadStream.start()
Esempio n. 7
0
    def __init__(self, x, y, level, screen, dashboard, sound, gravity=0.75):
        super(Mario, self).__init__(x, y, gravity)
        self.camera = Camera(self.rect, self)
        self.sound = sound
        self.input = Input(self)
        self.inAir = False
        self.inJump = False
        self.powerUpState = 0
        self.invincibilityFrames = 0
        self.traits = {
            "jumpTrait": JumpTrait(self),
            "goTrait": GoTrait(smallAnimation, screen, self.camera, self),
            "bounceTrait": bounceTrait(self),
        }

        self.levelObj = level
        self.collision = Collider(self, level)
        self.screen = screen
        self.EntityCollider = EntityCollider(self)
        self.dashboard = dashboard
        self.restart = False
        self.pause = False
        self.pauseObj = Pause(screen, self, dashboard)
Esempio n. 8
0
    def __init__(self, x, y, level, screen, dashboard, gravity=1.25):
        super(Mario, self).__init__(x, y, gravity)
        self.spriteCollection = Sprites().spriteCollection
        self.camera = Camera(self.rect, self)
        self.sound = Sound()

        self.animation = Animation([
            self.spriteCollection["mario_run1"].image,
            self.spriteCollection["mario_run2"].image,
            self.spriteCollection["mario_run3"].image
        ], self.spriteCollection["mario_idle"].image,
                                   self.spriteCollection["mario_jump"].image)

        self.traits = {
            "jumpTrait": jumpTrait(self),
            "goTrait": goTrait(self.animation, screen, self.camera, self),
            "bounceTrait": bounceTrait(self)
        }
        self.levelObj = level
        self.collision = Collider(self, level)
        self.screen = screen
        self.EntityCollider = EntityCollider(self)
        self.dashboard = dashboard
        self.restart = False
Esempio n. 9
0
import sys
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from classes.Camera import Camera, PICAMERA, USB
import os
from time import sleep
import cv2
from PIL import Image
import numpy as np
import io
from time import time

c = Camera(PICAMERA,
           camera_num=0,
           resolution=(320, 240),
           framerate=10,
           rotation=180)
c.start()

framerate = [0, 0]
start = time()
while True:

    if c.ready and c.more():
        framerate[1] += 1

        frame = c.get_frame()
        if frame is not None:
            cv2.imshow("camera_c", frame)
            #stream.seek(0)
            key = cv2.waitKey(1) & 0xFF
import sys
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from classes.Camera import Camera, PICAMERA, USB
import os
from time import sleep
import cv2
from PIL import Image
import numpy as np
import io
from time import time

c = Camera(USB, camera_num=2, resolution=(320, 240), framerate=15, rotation=-1)
c.start()

framerate = [0, 0]
start = time()
while True:

    if c.ready and c.more():
        framerate[1] += 1

        frame = c.get_frame()
        if frame is not None:
            cv2.imshow("camera_r", frame)
            #stream.seek(0)
            key = cv2.waitKey(1) & 0xFF

        if time() - start > 1:
            framerate = [sum(framerate) / 2, 0]
            start = time()
Esempio n. 11
0
if __name__ == "__main__":
    setup_files_and_folders()

    screen_width = int(root.winfo_screenwidth())
    screen_height = int(root.winfo_screenheight())

    root.geometry(f"600x800")
    # root.geometry(f"{screen_width}x{screen_height}")

    actions = { 
        "take_pictures": photobooth_workflow,
        "not_print": reset_ui,
        "print": print_photo
    }

    camera = Camera(
        root_dir=ROOT_DIR,
        on_error=show_error
    )
    photobooth_ui = PhotoboothUi(master=root, actions=actions)
    photobooth_ui.home_screen.pack(expand=True, fill='both')

    countdown = Countdown(master=root)

    root.bind("<KeyPress>", photobooth_workflow)
    root.bind("<KeyPress>", quit_)

    root.mainloop()

    sys.exit(0)
Esempio n. 12
0
import sys
from os import path

sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from classes.Camera import Camera, PICAMERA, USB
import os
from time import sleep
import cv2
from PIL import Image
import numpy as np
import io
from time import time

c = Camera(USB, camera_num=0, resolution=(320, 240), framerate=10, rotation=0)
print "Starting..."
c.start()
print "Started"

start = time()
while True:

    if c.ready and c.more():

        frame = c.get_frame()
        if frame is not None:
            cv2.imshow("camera_c", frame)
            #stream.seek(0)
            key = cv2.waitKey(1) & 0xFF

        #if time() - start > 1:
        #    framerate = [sum(framerate)/2, 0]