You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
import sys
|
|
import pygame
|
|
from pygame.locals import *
|
|
|
|
class Window():
|
|
def __init__(self, w, h, caption="window", double=False):
|
|
self.w = w
|
|
self.h = h
|
|
pygame.init()
|
|
pygame.display.set_caption(caption)
|
|
self.double = double
|
|
if self.double:
|
|
self.screen = pygame.display.set_mode((w*2,h*2), pygame.DOUBLEBUF)
|
|
else:
|
|
self.screen = pygame.display.set_mode((w,h), pygame.DOUBLEBUF)
|
|
self.camera_surface = pygame.surface.Surface((w,h), 0, 24).convert()
|
|
|
|
def draw(self, out):
|
|
pygame.surfarray.blit_array(self.camera_surface, out.swapaxes(0,1))
|
|
if self.double:
|
|
camera_surface_2x = pygame.transform.scale2x(self.camera_surface)
|
|
self.screen.blit(camera_surface_2x, (0, 0))
|
|
else:
|
|
self.screen.blit(self.camera_surface, (0, 0))
|
|
pygame.display.flip()
|
|
|
|
def getkey(self):
|
|
while 1:
|
|
event = pygame.event.wait()
|
|
if event.type == QUIT:
|
|
pygame.quit()
|
|
sys.exit()
|
|
if event.type == KEYDOWN:
|
|
return event.key
|
|
|
|
def getclick(self):
|
|
for event in pygame.event.get():
|
|
if event.type == pygame.MOUSEBUTTONDOWN:
|
|
mx, my = pygame.mouse.get_pos()
|
|
return mx, my
|
|
|