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)
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)
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
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()
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)
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()
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)
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
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()
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)
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]