def reProjectResidual(x, *args):
							
		Str_4D = args[0]
		Xp_1 = args[1]
		Xp_2 = args[2]
		k = args[3]

		R = cv2.Rodrigues(x[0:3])
		t = np.array(x[3:6]).reshape(3,1)
		
		myC1 = Camera.myCamera(k)
		myC2 = Camera.myCamera(k)
		myC1.projectiveMatrix(np.mat([0,0,0]).transpose(),[0, 0, 0])
		myC2.projectiveMatrix(np.mat(t),R[0])

		rXp_1 = np.mat(myC1.project(Str_4D))
		rXp_2 = np.mat(myC2.project(Str_4D))
		res_1 = Xp_1 - rXp_1
		res_2 = Xp_2 - rXp_2

		Res = np.hstack((res_1,res_2)).reshape(-1)

		nRes = 2*np.sqrt(np.sum(np.power(Res,2))/len(Res))
		


		return nRes
	def reProjectResidualwithX(nx, *args):
		
		shp = args[0]
		Xp_1 = args[1]
		Xp_2 = args[2]
		k = args[3]
		R = args[4]
		t = args[5]

		stackedx = nx[0:shp[0]*shp[1]]
		#x = nx[shp[0]*shp[1]:shp[0]*shp[1]+6]

		Str_4D = stackedx.reshape(shp)

		#R = cv2.Rodrigues(x[0:3])
		#t = np.array(x[3:6]).reshape(3,1)
		
		myC1 = Camera.myCamera(k)
		myC2 = Camera.myCamera(k)
		myC1.projectiveMatrix(np.mat([0,0,0]).transpose(),[0, 0, 0])
		myC2.projectiveMatrix(np.mat(t),R[0])

		rXp_1 = np.mat(myC1.project(Str_4D))
		rXp_2 = np.mat(myC2.project(Str_4D))
		res_1 = Xp_1 - rXp_1
		res_2 = Xp_2 - rXp_2

		Res = np.hstack((res_1,res_2)).reshape(-1)

		nRes = 2*np.sqrt(np.sum(np.power(Res,2))/len(Res))


		return nRes
 def takePhoto_btn_clicked(self):
     alert = QMessageBox()
     alert.setText("Smile!")
     Camera.take_picture(camera)
     path = '/home/pi/Desktop/ProfMate/pic.jpg'
     student_info.append(path)
     alert.exec_()
Example #4
0
    def new(self):
        # start a new game

        for row, tiles in enumerate(self.map.data):
            for col, tile in enumerate(tiles):

                if tile in MAP_KEY:
                    foo = MAP_KEY[tile]
                    if tile == 'P':
                        self.player = foo(col, row)
                    else:
                        foo(col, row)

        self.camera = Camera(self.map.width, self.map.height)
        # def Load(self, sheet_name, animation_name, num_pics, start_x, start_y, w, h):
        self.player.Animation_Right.Load("links.gif", "Link_Right", 8, 0, 0,
                                         70, 100, 30)
        self.player.Animation_Down.Load("links.gif", "Link_Down", 8, 800, 0,
                                        70, 100, 30)
        self.player.Animation_Left.Load("links.gif", "Link_Left", 8, 1600, 0,
                                        70, 100, 30)
        self.player.Animation_Up.Load("links.gif", "Link_Up", 8, 2400, 0, 70,
                                      100, 30)

        self.player.Animation_Standing.Add_Pic("Link_Standing", "links.gif",
                                               (800, 0, 70, 100))
Example #5
0
    def __init__(self):
        """Initialize game variables"""
        self.clock = pygame.time.Clock()
        self.current_map_name = "world"
        self.maps = {
            "world":Map('Maps/map0.txt', 'images/ProjectUtumno_full.png', screen_size),
            "shop": Map('Maps/map_shop.txt', 'images/ProjectUtumno_full.png', screen_size),
            "dungeon":Map('Maps/map_dungeon.txt', 'images/ProjectUtumno_full.png', screen_size),
        }

        self.current_map = self.maps[self.current_map_name]

        self.running = False
        self.window = pygame.display.set_mode(screen_size)
        self.player = Player('images/star.png')

        self.bg_color = (0,0,0)
        self.event_manager = EventManager()
        self.event_manager.addGameObject(self.player)
        self.camera = Camera(self.current_map)
        self.event_manager.addGameObject(self.camera)

        # feel free to move this to its own method or wherever, just using for testing
        for enemy in self.current_map.enemy_list.sprites():
            self.event_manager.addGameObject(enemy)

        self.warpCoordinates = {
            "world": [(self.player.position.x,self.player.position.y)],
            "shop": [(320,590),(1360,334)],
            "dungeon": [(2816,1600),(1440,1525)]
        }
Example #6
0
    def __init__(self, w, h, title):
        self.KeyInputState = {
            "reset": False,
            "space": False,
            "b": False,
            "v": False,
            "g": False,
            "h": False,
            "n": False
        }
        self.cam = Camera(60., 1.0, 0.1, 1000.0)
        #self.cam.setPos([0,10,1], [0,0,0])
        #self.cam.setPos([10,10,10], [0,0,0])
        #self.cam.setPos([10,5,10], [0,0,0])
        #self.cam.setPos([10,2,10], [0,0,0])
        self.cam.setPos([20, 10, 10], [0, 0, 0])
        self.timer = Timer()
        self.gridMode = False
        self.gridAngle = 0
        self.gridAxis = [1, 0, 0]
        self.graphics = Graphics()
        self.lighting = Lighting()
        self.scene = Scene()
        self.background = Background()

        glutInit(sys.argv)
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH)
        glutInitWindowSize(w, h)
        glutInitWindowPosition(100, 100)
        glutCreateWindow(title)
        glClearColor(0.25, 0.25, 0.25, 1.0)
        glEnable(GL_DEPTH_TEST)
        self.lighting.LightSet()
Example #7
0
    def __init__(self, WINDOW_SIZE):

        self.WINDOW_SIZE = Vector2(1366, 768)
        self.isGameOver = False
        self.playWithRFID = True

        self.folderDir = os.path.split(os.getcwd())[0]
        self.assetDir = self.folderDir + '/Assets/'

        self.inputManager = InputManager()
        if self.playWithRFID:
            self.myRFIDReader = RFIDReader()
            self.inputManager.setRFIDInput(self.myRFIDReader)

        pygame.init()
        self.clock = pygame.time.Clock()
        self.display = pygame.display.set_mode(
            (self.WINDOW_SIZE.getX(), self.WINDOW_SIZE.getY()),
            pygame.FULLSCREEN)
        pygame.display.set_caption('What A Block')

        self.loadAssets()

        self.cam = Camera(offSet=Vector2(
            self.WINDOW_SIZE.getX() / 2,
            self.WINDOW_SIZE.getY() / 2 - self.player.getHeight() / 2),
                          camSize=self.WINDOW_SIZE)

        self.player_revealver = Revealer(
            IsoToScreen(self.player.getIsoPos(),
                        self.mapCollection.getBlockSize().getX(),
                        self.mapCollection.getBlockSize().getY()), 60)

        pygame.mixer.music.play(-1)
Example #8
0
 def __init__(self, objects, characterSpawn, size, background, filename):
     self.objects = objects
     self.filename = filename
     self.character = Character(characterSpawn)  # TODO: use characterSpawn
     self.objects.append(self.character)
     self.camera = Camera(size * 24, background)
     self.camera.moveToCenter(self.character.hitBox.center)
Example #9
0
def main():
  args = getArguments()
  camera = None
  if args.videofile:
    camera = Camera.VideoCamera(args.videofile)
  else:
    camera = Camera.getCamera()
  drone = Tracking.Drone()

  cv2.namedWindow('frame')

  def run():
    while True:
      frames = camera.getFrames()
      if frames is None:
        return
      frame = cv2.resize(frames['color'], (0,0), fx=0.5, fy=0.5)
      cv2.imshow('frame', frame)

      key = cv2.waitKey(1)
      if key == ord('q'):
        break
      del frame
      gc.collect()


  try:
    run()
  except Exception as e:
    print e
  finally:
    camera.stop()
Example #10
0
def process_inputs():
    """Manages the events and keyboard in the game, sending info to entities.
    """

    # Managing events

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        for entity in Entity.collection:
            entity.process_event(event)

        Camera.process_event(event)
        Editor.process_event(event)


    # Managing keyboard and mouse.

    keys_pressed = pygame.key.get_pressed()

    for entity in Entity.collection:
        entity.process_inputs(keys_pressed)

    Camera.process_inputs(keys_pressed)
    Editor.process_inputs(keys_pressed)
Example #11
0
    def __init__(self):
        self.entities = []
        self.platforms = []
        self.players = []
        self.particles = []
        self.lag = 0
        self.MS_PER_UPDATE = 16

        os.environ["SDL_VIDEO_CENTERED"] = "1"
        pygame.mixer.pre_init(44100, -16, 1, 512)
        pygame.mixer.init()
        pygame.init()

        self.myfont = pygame.font.SysFont("monospace", 34, bold=True)
        self.score = 0
        pygame.display.set_caption("Simple Game")
        self.screen = pygame.display.set_mode((1280, 720))
        pygame.joystick.init()
        self.joysticks = [pygame.joystick.Joystick(x) for x in range(pygame.joystick.get_count())]
        for stick in self.joysticks:
            stick.init()


        self.loadAssets()
        player = Player(KeyBoardInput(), PhysicsComponent(self), PlayerGraphics(self.screen))
        self.addEntity(player)
        for player in self.players:
            player.rect.center = self.start
        self.camera = Camera(760, 800)
Example #12
0
    def new(self):
        try:
            self.mapPath = os.path.join("../assets/", "map1.tmx")
            self.map = mapLoader(self.mapPath)
        except:
            self.mapPath = os.path.join("assets/", "map1.tmx")
            self.map = mapLoader(self.mapPath)
        self.mapImg = self.map.makeMap(self)
        self.mapRect = self.mapImg.get_rect()
        self.frontSprites = pygame.sprite.Group()
        self.backSprites = pygame.sprite.Group()
        self.walls = pygame.sprite.Group()
        self.goals = pygame.sprite.Group()
        self.positions = []

        for i in self.map.tmdata.objects:
            if i.name == 'wall':
                Wall(self, i.x * TILESIZEMULTI, i.y * TILESIZEMULTI,
                     i.width * TILESIZEMULTI, i.height * TILESIZEMULTI)
            elif i.name == 'goal':
                self.positions.append((i.x, i.y))
            elif i.name == 'player':
                self.player = Player(self, i.x * TILESIZEMULTI,
                                     i.y * TILESIZEMULTI, i.width, i.height)

        self.camera = Camera(self.mapRect.width, self.mapRect.height)
Example #13
0
    def __init__(self, w, h, title):
        self.cam = Camera(90.0, 800/600,1, 100000.0)
        self.eye = [0.0, -2000.0, 3800.0]
        self.target = [0.0, 0.0, 2500.0]
        self.up = [0.0, 0.0, 1.0]
        self.cam.setPos(self.eye, self.target)
        self.timer = Timer()
        self.gridMode = False
        self.gridAngle = 0
        self.gridAxis = [1,0,0]

        self.graphics = Graphics()
        self.lighting = Lighting()
        self.scene = Scene()
        self.background = Background()
        self.obj_basic = OBJ('island_basic_1.obj', swapyz=True)
        self.obj_snow = OBJ('island_basic_snow.obj', swapyz=True)
        self.obj_rain = OBJ('island_basic_rain.obj', swapyz=True)
        self.obj = self.obj_basic
        glutInit(sys.argv)
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH)
        glutInitWindowSize(w, h)
        glutInitWindowPosition(800, 600)


        glEnable(GL_DEPTH_TEST)
        glShadeModel(GL_SMOOTH)
        self.lighting.LightSet()
Example #14
0
 def __init__(self, width, height):
     '''
     Constructor
     '''
     self.__camera = Camera()
     self.__width = width
     self.__height = height
Example #15
0
def update(screen):
    """Updates the game state one step.
    """
    for entity in Entity.collection:
        entity.update()

    Camera.update()
    Editor.update(screen.get_size())
Example #16
0
 def __init__(self, size, player, viewport):
     self.size = size
     self.center = size * .5
     self.player = player
     self.terrain\
         = [[Terrain.Grass if y%2 is 0 else Pixel.Black for y in range(size.y)] for x in range(size.x)]
     self.entities = [player]
     self.camera = Camera(self.player.pos, viewport, self.center)
Example #17
0
 def __init__(self, objects, characterSpawn, size, background):
     self.objects = objects
     self.characterSpawn = characterSpawn * 24
     self.character = Character(self.characterSpawn)
     self.objects.append(self.character)
     self.size = size * 24
     self.camera = Camera(self.size, background)
     self.camera.moveToCenter(self.character.hitBox.center)
     self.gameOver = False
Example #18
0
 def __init__(self, color, depth=None, undistort=True):
     self.id = id
     self.time_stamp = time.time()
     self.camera = Camera()
     if undistort:
         self.color = self.camera.undistort(color)
     else:
         self.color = color
     self.depth = depth
     self.keypoints, self.descriptors = detectORB(self.color)
Example #19
0
def warm_up_camera():

    camera = Camera()
    i = 0
    while i != 50:
        img = camera.get_frame()
        i += 1
    del camera

    return img
Example #20
0
    def create_camera(self):
        r = -1 / 10
        matrix = np.array([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, r],
                           [0, 0, 0, 1]])
        camera = Camera((0, 0, 0), None, self.figure_list[self.cur_figure_ind],
                        matrix)

        self.use_eraser()
        camera.switch_to_camera_view(self.draw)
        self.canvas.image = ImageTk.PhotoImage(self.image)
        self.canvas.create_image(0, 0, image=self.canvas.image, anchor='nw')
Example #21
0
class Engine:
    def __init__(self, vertices, camera_position):
        self.vertices = vertices
        self.camera = Camera(camera_position)
        self.version = "0.1"

    def render(self):
        self.camera.render(self.vertices)

    def __str__(self):
        return f"3D Rendering Engine by Nathcat, Version: {self.version}, Vertices: {self.vertices}, Camera: {self.camera}"
Example #22
0
 def Update_Key_Holds(self, KeyPressList):
     if pygame.joystick.get_count() == 0:
         Camera.Keyhold(KeyPressList)
     else:
         Camera.Keyhold(KeyPressList, self.JoysticksInput[0])
     #Game.MainCamera.Keyhold(KeyPressList)
     for i in self.Drones:
         #print(f'{i} is being updated for Keyholds')
         if i.__class__ != Drone.Drone:
             return
         elif (i.Control_Type == 2 or i.Control_Type == 1) and pygame.joystick.get_count() > 0:
             i.Keyhold(KeyPressList, self.JoysticksInput[0])
         else:
             i.Keyhold(KeyPressList)
Example #23
0
 def __init__(self):
     self.loading = LoadingScreen(self)
     self.camera = Camera(self)
     self.lighting = Lighting(self)
     self.balltable = BallTable(self)
     self.menu = Menu(self)
     self.decision = Decision(self)
     self.mousekey = MouseKey(self)
     self.shotStrength = ShotStrength(self)
     self.state = GameState.START
     self.mode = GameMode.TUTORIAL
     self.balls = [Ball(self)] * 16
     self.ballinHole = [None] * 16
     self.LastFrameTimePoint = 0
Example #24
0
	def __init__(self):
		self.display_init()
		self.running = True
		self.clock = pygame.time.Clock()

		self.skybox = Skybox('textures/skybox/minecraft','png')
		self.camera = Camera()
		#print(level.playerX,level.playerY,level.playerZ)
		self.camera.setPosition((level.playerX,level.playerY,level.playerZ))
		#self.camera.setPosition(cn.level.playerPos)
		#self.camera.setPosition((0,70,0))

		self.plane = glGenLists(1)

		self.ID = 3

		glNewList(self.plane,GL_COMPILE)
		glPushMatrix()
		glColor3ub(66,66,66)
		tes = Tessellator.instance
		tes.startDrawing(GL_LINES)
		for i in range(-50,50):
			tes.addVertex(-50, 0, i)
			tes.addVertex(50, 0, i)
			tes.addVertex(i, 0,-50)
			tes.addVertex(i, 0, 50)
		tes.draw()
		glPopMatrix()
		glEndList()

		self.groundpos = None
		self.cubepos = Vector3()
		self.near = Vector3()
		self.far = Vector3()


		self.lasttime = time.time()

		self.cloudTickCounter = 0

		self.hit = None

		main.CTextureManager.initialize("textures")

		self.lastpos = Vector3(0,0,0)

		self.gui = GUI()

		self.gui.add(RandomRect())
Example #25
0
def main():
    this_camera = Camera()
    this_camera.setZoom(1)
    this_camera.setRotation(338)
    this_camera.setCenter('N03742.179', 'E13555.237')
    test_point = Point2D('N03742.183', 'E13555.235')
    pixel_point = geodeticToPixel(test_point, this_camera)
    print pixel_point
Example #26
0
  def start(self):
    self.clock = pygame.time.Clock()
    self.keep_going = 1
    self.camera = Camera(screen, self.world_rect, self.player)
    self.blank_scr("OMFG A WALL\nOF LAVA!\nRUN AWAY!")

    while self.keep_going:
      self.clock.tick(FRAME_RATE)
      for event in pygame.event.get():
        if event.type == QUIT:
          exit()
        if event.type == KEYDOWN:
          if event.key == K_ESCAPE:
            self.keep_going = 0
          """if event.key == K_z: # jump # handled in player class now
            if not self.player.states.jumping in self.player.state_lst and not self.player.states.falling in self.player.state_lst:
              self.player.state_lst.append(self.player.states.jumping)"""
          if event.key == K_x: # attack
            if not self.player.states.attacking in self.player.state_lst:
              self.player.state_lst.append(self.player.states.attacking)
              sounds['fire'].play()
          if event.key == K_f:
            print "FPS:", self.clock.get_fps()
          if event.key == K_p:
            self.blank_scr('PAUSED')

      self.screen.fill(self.bg_col, (0, CEIL_Y, SCR_SIZE[0], SCR_SIZE[1] - 2*CEIL_Y))
      self.camera.update()
      self.camera.update_grps(*self.all)
      self.check_some_collisions()
      self.camera.draw_grps(*self.all)
      if self.keep_going:
        pygame.display.flip()
    sounds['lava'].stop()
Example #27
0
    def __init__(self):
        application = self

        #global initialization
        pyxel.init(255, 255, caption="Nearym Quest", scale=3)
        self.debugOverlay = False
        self.camera = Camera()
        self.streamingArea = Box()
        self.streamingArea.size = Vector2f(512, 512)
        self.streamingArea.center = Vector2f(0, 0)
        self.renderer = Renderer()
        self.physics = Physics()
        random.seed(0)

        # Event Manager
        self.inputManager = InputManager()
        self.inputManager.addInput(
            Input(InputType.BUTTON, InputNotify.PRESSED, [pyxel.KEY_F1],
                  'debug'))

        # world and player
        self.LoadMap()

        self.draw_count = 0

        # has to be completely at the end of init
        pyxel.run(self.update, self.draw)
Example #28
0
    def handle_IMAGE(self, _args):
        """

        :param _args:
        :return: :raise TwistedPiException:
        """
        log.msg('handle_image', logLevel=logging.DEBUG)

        def imageSuccess(_image):
            assert _image is not None, "Image is None"

            log.msg('Image Size: {0} bytes'.format(_image.tell())
                    ,logLevel = logging.DEBUG)

            _image.seek(0)
            return threads.deferToThread(EncodeData, _image.read())

        def imageError(_err):
            log.err(_err)
            raise TwistedPiException("Error capturing Image",
                                     ErrorCodes.SERVER_ERROR)

        _args = Camera.validate_image_args(_args)

        d = threads.deferToThread(Camera.take_image, _args)
        d.addCallbacks(imageSuccess, imageError)

        return d
Example #29
0
	def __init__(self, WINDOW_SIZE):

		self.WINDOW_SIZE = Vector2(1366, 768)
		self.isGameOver = False
		self.playWithRFID = True

		self.folderDir = os.path.split(os.getcwd())[0]
		self.assetDir = self.folderDir + '/Assets/'


		self.inputManager = InputManager()
		if self.playWithRFID:
			self.myRFIDReader = RFIDReader()
			self.inputManager.setRFIDInput(self.myRFIDReader)

		pygame.init()
		self.clock = pygame.time.Clock()
		self.display = pygame.display.set_mode((self.WINDOW_SIZE.getX(), self.WINDOW_SIZE.getY()), pygame.FULLSCREEN)
		pygame.display.set_caption('What A Block')

		self.loadAssets()
		
		self.cam = Camera(offSet = Vector2(self.WINDOW_SIZE.getX()/2 , self.WINDOW_SIZE.getY()/2 - self.player.getHeight()/2), camSize = self.WINDOW_SIZE)

		
		self.player_revealver = Revealer(IsoToScreen(self.player.getIsoPos(), self.mapCollection.getBlockSize().getX(), self.mapCollection.getBlockSize().getY()), 60)

		pygame.mixer.music.play(-1)
Example #30
0
 def __init__(self, color, depth=None):
     self.id = id
     self.time_stamp = time.time()
     self.color = color
     self.depth = depth
     self.camera = Camera()
     self.keypoints, self.descriptors = detectORB(color)
Example #31
0
    def __init__( self, world_name="" ):
        self._world = World()

        segment = self._world.levels[ "2" ].segments[ "2.1" ]
        segment_dims = segment.get_pixel_dims()

        self._tilemap = segment.get_tiles()

        self._entities = []
        # TODO: Update this logic to more elegantly designate the entity that
        # will be followed by the camera.
        player_entity = None
        for ( (idx_x, idx_y), entity_class ) in segment.get_entities():
            entity_pos = ( TILE_DIMS[0] * idx_x, TILE_DIMS[1] * idx_y )
            entity_delta = PhysicalState( CompositeHitbox(entity_pos[0], entity_pos[1]) )
            entity = Entity( entity_class, entity_delta )

            if entity_class == "player":
                player_entity = entity

            self._entities.append( entity )

        self._camera = Camera( target=player_entity.get_hitbox().get_hitbox(),
            new_border=PG.Rect(0, 0, segment_dims[0], segment_dims[1]) )
        self._collision_detector = SpatialDictionary( segment_dims[0] / 16,
            segment_dims[0], segment_dims[1] )

        self._setup_collision_detector()
Example #32
0
def main(sampleDirectory, scale, ite):
    print ("Estimate Motion Between Sample And Original Image")
    samples = loadSamples(sampleDirectory)
    print("samples loaded")
    #print ("Restore SR Image")
    camera = Camera.Camera(cfg['psf'])

    scale = scale
    origSizeX = samples[0][1].size[1] * scale 
    origSizeY = samples[0][1].size[0] * scale
    origImage = numpy.zeros([origSizeX, origSizeY, 3]).astype(numpy.float32)
    print("Size Of Estimated Original: %dx%d" % (origSizeX, origSizeY))

    for ((dx, dy), sample) in samples:
        sampleOrigSize = sample.resize((origSizeX, origSizeY), Image.ANTIALIAS)
        sampleAsArr = numpy.asarray(sampleOrigSize)


    origImage = origImage / len(samples) # take average value
    origImage = Image.fromarray(numpy.uint8(origImage))

    # TODO move this to a separate class
    for i in range(ite):
        origImage, estimDiff = SRRestore(camera, origImage, samples, scale, i)
        #estimDiff = 5
        estimDiff /=  float(origSizeX * origSizeY)
        print ('%2d: estimation error: %3f' % (i, estimDiff))
        
    origImage.save(os.path.join(sampleDirectory,'super_resolution.tif'))
    def __init__(self):
        # gpio.BOARD: using #pin / gpio.BCM: using #GPIO
        gpio.setmode(gpio.BOARD)

        # gpio.OUT: use this pin for OUTPUT / gpio.IN: use this pin for INPUT
        # DC MOTOR(MDD10A)
        gpio.setup(Car.__DIR1, gpio.OUT)
        gpio.setup(Car.__PWM1, gpio.OUT)

        # SERVO MOTOR(PWM)
        gpio.setup(Car.__SERVO, gpio.OUT)

        # for unwanted movement
        gpio.output(Car.__DIR1, False)

        # DC MOTOR
        self.motor_power = 0
        self.speed = 0
        self.motor = gpio.PWM(Car.__PWM1, Car.__DC_FREQUENCY)
        self.motor.start(0)
        self.motor.ChangeDutyCycle(0)

        # Servo MOTOR
        self.servo_motor = gpio.PWM(Car.__SERVO, Car.__SERVO_FREQUENCY)
        self.servo_motor.start(
            2.5)  # starting duty cycle (it set the servo to 0 degree)
        self.servo_motor.ChangeDutyCycle(Car.__MIDDLE)
        self.steer = 0

        # Controller
        self.controller = self.bind()

        # Recorder
        self.camera = cam.Camera()
        self.recording = False
Example #34
0
    def __init__(self):
        global k, pd, pid, comb_pid, max_pwm, max_theta, max_x, frequency, pwm_offset, arduino_port, display_camera_output, initialize_theta_set
        #Cart variables
        self.max_pwm = max_pwm
        self.max_theta = max_theta
        self.max_x = max_x
        self.frequency = frequency
        self.pwm_offset = pwm_offset
        self.arduino_port = arduino_port

        #Booleans
        self.display_camera_output = display_camera_output
        self.initialize_theta_set = initialize_theta_set

        #Motor, Controller, and Camera Instance Definition
        self.motors = Motors.Motors(max_pwm = self.max_pwm, frequency=self.frequency, arduino_port=self.arduino_port)
        self.controller = Controller.Controller(max_theta = self.max_theta, max_x = self.max_x)
        self.camera = Camera.Camera(self.display_camera_output)
    
        #Controller Vectors
        self.k = [-10.0000/1.5, -29.9836/1.5, 822.2578, 85.5362]
        self.pd = pd
        self.pid = pid
        self.comb_pid = comb_pid


        self.status = 1
Example #35
0
 def __init__(self, host, port):
     threading.Thread.__init__(self)
     self.host = host
     self.port = port
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.sock.connect((self.host, self.port))
     self.camera = Camera.Camera()
Example #36
0
def load_settings():
    screen_size = (700, 550)
    screen = pygame.display.set_mode(screen_size)
    game_object = {
        'player': [],
        'tile': [],
        'collider': [],
        'bg': [],
        'objective': []
    }
    var = {
        'folder':
        os.path.dirname(os.path.realpath(__file__)),
        'total_maps':
        len(
            os.listdir(
                os.path.dirname(os.path.realpath(__file__)) +
                '/assets/img/map')),
        'camera': [Camera(screen_size)]
    }
    game_object['bg'].append(
        Sprite((0, 0), var['folder'] + '/assets/img/tile/bg.png'))
    game_object['bg'][0].img = pygame.transform.scale(game_object['bg'][0].img,
                                                      screen_size)
    return {
        'screen_size': screen_size,
        'screen': screen,
        'game_object': game_object,
        'var': var,
        'layers': ['bg', 'tile', 'player', 'objective']
    }
Example #37
0
    def run(self):
        self.map.run()
        self.enemy_list = []

        # Make the enemy objects and add every enemy to the enemy_list.
        # Every enemy takes a x and y coordinate as argument.
        # (Spawn point)
        # And the range it can walk on the x axis.
        # The fish takes a third argument.
        # You got two choices: 'Water' or 'Lava'.
        # According to the fish you want.
        self.enemy_list.append(Fish(580, 600, 110, 'Lava'))
        self.enemy_list.append(Fish(2570, 600, 400, 'Lava'))
        self.enemy_list.append(Slime(1736, 10))

        # Add a collider for the enemies and the player.
        # It takes the player, map group(tiles),
        # an array with all the enemy objects, Reference to
        # LevelStateManager
        # as arguments.
        self.collider = Collider(self.player, self.map.get_group(),
                                 self.enemy_list, self.LevelStateManager)

        # Create a camera for this level.
        self.camera = Camera(self.shift_start, self.shift_end,
                             self.map, self.player, self.enemy_list)

        # Create a timer for this level.
        self.timer = Timer()

        # Load the best time of level 2.
        self.timer.load_best_time(2)
Example #38
0
    def __init__(self) -> None:

        print('Initializing perception')
        self.camera = Camera.Camera()
        self.camera.camera_open()

        # initialize frame variables
        self.latest_raw_img = np.zeros((5, 5))  # blank 5x5 img
        self.latest_display_img = np.zeros((5, 5))

        # constants used for preception
        self.color_range = {
            'red': [(0, 151, 100), (255, 255, 255)],
            'green': [(0, 0, 0), (255, 115, 255)],
            'blue': [(0, 0, 0), (255, 255, 110)],
            'black': [(0, 0, 0), (56, 255, 255)],
            'white': [(193, 0, 0), (255, 250, 255)],
        }
        self.range_rgb = {
            'red': (0, 0, 255),
            'blue': (255, 0, 0),
            'green': (0, 255, 0),
            'black': (0, 0, 0),
            'white': (255, 255, 255),
        }
        self.size = (640, 480)
        self.window_name = "Arm View"
        print('Finished initializing perception')
Example #39
0
 def __init__(self, cam_id=1):
     self.gun = Gun.Gun()
     self.camera = Camera.Camera(_id=cam_id,
                                 crop_bounds=(200, 1080, 210, 1760),
                                 scale_to_height=500)
     self.camera.calibrate(
         img_path='C:/Nadav/Repos/paper_dome/camera_calib/')
Example #40
0
    def __init__(self, music, host):
        super(GameScene, self).__init__()
        self.background = Surface((WINDOW_WIGTH, WINDOW_HEIGHT))
        self.background.fill(Color(BACKGROUND_COLOR))
        timer = pygame.time.Clock()
        self.music = music
        self.enemy = []
        self.net=Net()
        self.net.subscribe(self.sync)
        self.host = host
        mouse.set_pos([200, 300])
        
        self.heroes = []
        self.up = self.down = self.left = self.right = False

        self.entitles_walls = pygame.sprite.Group()
        self.entitles = pygame.sprite.Group()
        self.addHero(Player(300, 55, 1))
        self.walls = []
        
        #map:
        self.map = open("maps/testmap.txt", "r")
        self.x = 0
        self.y = 0
        self.lenx = 0
        self.leny = 0
        for self.row in self.map:
            for self.col in self.row:
                if self.col == "-":
                    self.wall = wall(self.x, self.y)
                    self.entitles_walls.add(self.wall)
                    self.walls.append(self.wall)
                if self.col == " ":
                    self.floor = floor1(self.x, self.y)
                    self.entitles_walls.add(self.floor)
                self.x = self.x + BLOCK_X
            self.y = self.y + BLOCK_Y
            self.lenx = self.x / BLOCK_X
            self.leny += 1
            self.x = 0

        for i in self.heroes:
            self.entitles.add(i)

        total_level_width = self.lenx*WINDOW_WIGTH
        total_level_height = self.leny*WINDOW_HEIGHT

        self.camera = Camera(camera_configure, total_level_width, total_level_height)

        self.enemy = []
        if self.host:
            self.enemy = [Enemy(100, 100, 1), Enemy(200, 200, 2), Enemy(100, 500, 3)]
            for i in self.enemy:
                self.entitles.add(i)
        self.bul = []
        self.bul.append(Bullet(0,0))
        if self.music == True:
            pygame.mixer.music.load("music/Game.mp3")
            pygame.mixer.music.play(-1)
Example #41
0
 def __init__(self, size, player, viewport):
     self.size = size
     self.center = size*.5
     self.player = player
     self.terrain\
         = [[Terrain.Grass if y%2 is 0 else Pixel.Black for y in range(size.y)] for x in range(size.x)] 
     self.entities = [player]
     self.camera = Camera(self.player.pos, viewport, self.center)
Example #42
0
class Controller:
    def __init__(self,model):
	#instance of DataModel
	self.__model = model 
	print "initController"
	self.bootSystem()


#使用インスタンスを作成
#Viewを先に構築するため__init__と分離
#各インスタンスの作成
#cameraControl
    def bootSystem(self):
	#opencv,カメラの設定
	self.__camera = Camera()

    def getCameraPict(self):
	print "next"
	cameraPil  = self.__camera.getPicturePILImage()
	return cameraPil

    def getCameraCVPict(self):
	self.__cameraPict = self.__camera.getPicture()

    #水平取得
    #単位はdegree
    def getHorizon(self):
	try:
	    self.getCameraCVPict()
	    self.convertGray()
	    horizon = Horizon(self.__grayCameraPict)
	    horizon.detectHorizon()
	    degree = horizon.getHorizon()
	    print "degree:"+str(degree)
	    return degree
	except:
	    sys.exit(sys.exc_info()[:2])

    #画像変換
    def convertGray(self):
    	cv.Smooth(self.__cameraPict,self.__cameraPict,cv.CV_GAUSSIAN,13,0,0,0)
	grayCameraImage = cv.CreateImage((self.__cameraPict.width,self.__cameraPict.height),cv.IPL_DEPTH_8U,1)
	cv.CvtColor(self.__cameraPict,grayCameraImage,cv.CV_BGR2GRAY)
	cv.EqualizeHist(grayCameraImage,grayCameraImage)
	self.__grayCameraPict = grayCameraImage
Example #43
0
 def draw(self, screen):
     if self.graph:
         screen_x, screen_y, screen_size = (
             Camera.screen_coords_and_size(screen, self.pos)
             )
         
         transformed = pygame.transform.rotozoom(
             self.graph, 
             -rad2deg(self.angle),
             screen_size)
         screen.blit(transformed, (screen_x, screen_y))
Example #44
0
 def __init__(self, screen):
     self.deaths = 0
     
     
     self.screen = screen
     self.level = Level('reallevel')
     self.spawn()
     
     self.game_area = screen.subsurface((0, 40, screen.get_width(), screen.get_height() - 40))
     self.cam = Camera(self.player, self.level.bounds, self.game_area.get_size())
     
     self.hud = screen.subsurface((0, 0, screen.get_width(), 40))
     self.deathtext = pygame.font.Font(None, 20)
Example #45
0
	def __init__(self):
		self.loading = LoadingScreen(self)
		self.camera = Camera(self)
		self.lighting = Lighting(self)
		self.balltable = BallTable(self)
		self.menu = Menu(self)
		self.decision = Decision(self)
		self.mousekey = MouseKey(self)
		self.shotStrength = ShotStrength(self)
		self.state = GameState.START
		self.mode = GameMode.TUTORIAL
		self.balls = [ Ball(self) ]*16
		self.ballinHole = [ None ] * 16
		self.LastFrameTimePoint = 0
    def __init__(self,parent):
        tk.Tk.__init__(self,parent)
        self.parent = parent
        #self.key = os.urandom(32)
        self.key = b"G\x82=\xd7\xdf\xc1\\\xd3\xd8\x85\x86\x19\x9a5\x90\x98u%w\xfa\xbe\x1dI\xddL\x01G\x9c\xbd\x8e\x8d\xd4"
        self.key2 = b"\x0et\xf1\xfc\xf8'\xd5$M\xb2u\xb0\xc2\x87\xc1\xa4"
        self.key128 = b"\xf8\xcd<@\xd0+w-\xde\x9bq/-_P\x12\x01\xcf\xe4\xd3\x8e\x01\xcc\x07\x1bD\xa6\x85\xa0\x97q\x13\x96\x8e\xc1}\xeb\x1f\x87\x14\x05\xc0M\x95t\xc6&\x12Q\x0c\x91\x98\x8cn\x0bV&\x1a\x7f#\xf5e\x18^\x96$z\xa0\x8f\xfc\xeb\xfes\xcf\xb7s\x8d\xf0\xb5\xc9r\xdc`\xcfjPg_\xc5\xa9\xd1It\x0f\nR\xa1\xf6!K+\xaf\xac\xdc\xae\xf1\x1cs\xa61f\x01\xf7\xeew\x93\xe69\x96\x8b\xd6\xb8Y\x1c\xf0h\x9e?"
        #print(os.urandom(128))

        self.initializeVariables()
        self.initializeTkElements()
        self.Camera = Camera.init()
        
        with open(self.fileLogs, "w") as fl:
            fl.write("Cryptographic Embedded System - Log\n")
Example #47
0
   def __init__(self):
      siren.State.__init__(self)
      self.ignoreMouseMove = True
      self.fps = 0.0
      self.numFrames = 0
      self.frameTime = 0.0

      # Initialize the input controls
      self.initInput()

      self.camera = Camera()

      # Create the player
      self.player = Player('Ben', 'John')
      self.player.pos = gmtl.Point3f(0, 0, -5)

      rot = gmtl.Quatf()
#      gmtl.set(rot, gmtl.AxisAnglef(gmtl.deg2Rad(180), 0,1,0))
      self.player.rot = rot

      # Big hack to get player rotation control to work
      self.vel_change = gmtl.Vec3f()

      self.npcs = []
      for i in range(4):
         av = siren.Avatar.create('John')
         av.setWCS(gmtl.EulerAngleXYZf(gmtl.deg2Rad(-90.0), 0, 0))
         av.setPos(gmtl.Vec3f(4.0*i, 0, -10))
         av.triggerAnimationCycle('DANCE')
         self.npcs.append(av)

      self.curAnim = 0
      self.anims = ['WALK',
                    'RUN',
                    'DANCE',
                    'IDLE',
                    'TYPE',
                    'SIT',
                    'WORK1',
                    'WORK2']

      # Create the texture to hold the motion blur
      self.blurTexture = siren.Texture(512, 512, 3, GL_RGB)

      # Inite the GL state
      glEnable(GL_DEPTH_TEST)
      glEnable(GL_TEXTURE_2D)
      glClearColor(0,0,0,1)
Example #48
0
class Game(object):
    
    def __init__(self, screen):
        self.deaths = 0
        
        
        self.screen = screen
        self.level = Level('reallevel')
        self.spawn()
        
        self.game_area = screen.subsurface((0, 40, screen.get_width(), screen.get_height() - 40))
        self.cam = Camera(self.player, self.level.bounds, self.game_area.get_size())
        
        self.hud = screen.subsurface((0, 0, screen.get_width(), 40))
        self.deathtext = pygame.font.Font(None, 20)


    def spawn(self):
        self.player = Player((self.level.spawnPoint), self.level, self)
        
            
    def quit(self):
        self.done = True
    
    def loop(self):
        self.done = False
        self.clock = pygame.time.Clock()
        while not self.done:
            dt = self.clock.tick(30)

            #input
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.quit()
                elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    self.quit()
                elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                    self.player.jump()

            #update
            self.player.update(dt)
            self.cam.update(self.player.rect)

            #draw
            self.hud.fill((80, 80, 80))
            text = self.deathtext.render("deaths: " + str(self.deaths), True, (0, 255, 0)) 
        
            self.hud.blit(text, (0, 0))

            self.game_area.fill((0,0,0))
            self.cam.draw_background(self.game_area, self.level.background)
            self.cam.draw_sprite(self.game_area, self.player)

            #refresh
            pygame.display.flip()
Example #49
0
    def run(self):
        self.map.run()

        # Make the enemy objects and add every enemy to the enemy_list.
        # Every enemy takes a x and y coordinate as argument.
        # (Spawn point)
        # And the range it can walk on the x axis.
        # The fish takes a third argument.
        # You got two choices: 'Water' or 'Lava'.
        # According to the fish you want.
        self.enemy_list.append(Fly(500, 600, 100))
        self.enemy_list.append(Fly(1500, 100, 100))
        self.enemy_list.append(Tank(2600, 50, 380))
        self.enemy_list.append(Fish(1000, 700, 200, 'Water'))

        # Add a collider for the enemies and the player.
        # It takes the player, map group(tiles),
        # an array with all the enemy objects, Reference to
        # LevelStateManager
        # as arguments.
        self.collider = Collider(self.player, self.map.get_group(),
                                 self.enemy_list, self.LevelStateManager)

        # Load the background music.
        # The pygame.mixer.music.load
        # method takes the file location as an argument.
        # It has to be .wav or .mp3.
        self.level_background_music = \
            pygame.mixer.music.load('../Data/Music/Level4_2.mp3')

        # Play the background music.
        # This is only necessary in level1,
        # because we don't stop the music when creating level2.
        pygame.mixer.music.play()

        # Create a camera for this level.
        self.camera = Camera(self.shift_start, self.shift_end,
                             self.map, self.player, self.enemy_list)

        # Create a timer for this level.
        self.timer = Timer()

        # Load the best time of level 1.
        self.timer.load_best_time(1)
Example #50
0
class World(object):
    """The world class which stores entities and value data."""

    def __init__(self, size, player, viewport):
        self.size = size
        self.center = size*.5
        self.player = player
        self.terrain\
            = [[Terrain.Grass if y%2 is 0 else Pixel.Black for y in range(size.y)] for x in range(size.x)] 
        self.entities = [player]
        self.camera = Camera(self.player.pos, viewport, self.center)


    def input(self, input):
        #this takes in the input from self.request.get('input')
        self.player.handleInput(self, input)

        pass

    def update(self):
        for ent in self.entities:
            ent.update(self)

        pass

    def render(self):
        buffer = copy.deepcopy(self.terrain) #COMPOSED OF PIXELS

        #PLACE ENTITIES
        for ent in world.entities:
            pos = self.buffercoord(ent.pos)
            if(not ((pos.x < 0 or pos.x > self.size.x)
               or (pos.y < 0 or pos.y > self.size.y))):
                buffer[pos.x][pos.y] = ent
        
        return self.camera.render(buffer, self)

    def buffercoord(self, vect):
        floatVect = vect + self.size*.5
        return Vector(int(floatVect.x), int(floatVect.y))

    def worldcoord(self, vect):
        return vect - self.size*.5
Example #51
0
	def __init__(self):
		self.display_init()
		self.running = True
		self.clock = pygame.time.Clock()

		self.skybox = Skybox('textures/skybox/minecraft','png')
		self.camera = Camera()
		self.camera.setPosition((level.playerX,level.playerY,level.playerZ))
		#self.camera.setPosition(cn.level.playerPos)
		#self.camera.setPosition((0,20,0))

		self.plane = glGenLists(1)

		self.ID = 3

		glNewList(self.plane,GL_COMPILE)
		glPushMatrix()
		glColor3ub(66,66,66)
		tes = Tessellator.instance
		tes.startDrawing(GL_LINES)
		for i in range(-50,50):
			tes.addVertex(-50, 0, i)
			tes.addVertex(50, 0, i)
			tes.addVertex(i, 0,-50)
			tes.addVertex(i, 0, 50)
		tes.draw()
		glPopMatrix()
		glEndList()

		self.groundpos = None
		self.cubepos = Vector3()
		self.near = Vector3()
		self.far = Vector3()


		self.lasttime = time.time()

		self.cloudTickCounter = 0

		self.hit = None
    def __init__(self):
        """constructor"""

        # mission relevant attributes
        # TODO: move these to target class
        # self._latitude = "uncalculated"
        # self._longitude = "uncalculated"
        # self._shape = "unknown"
        # self._alpha = "unknown"
        # self._alphacolor = "unknown"
        # self._color = "unknown"
        # self._orientation = "unknown"

        # "intermediate" attributes
        self._gps_x = 0.0
        self._gps_y = 0.0
        self._pan = 0.0
        self._tilt = 0.0
        self._yaw = 0.0
        self._pitch = 0.0
        self._roll = 0.0
        self._plane_orientation = 0.0
        self._altitude = 0.0
        self._pan = 0.0

        # representation of camera used to take picture
        self.bloggie = Camera()
        self.bloggie.set_params(fc1=3224.35414, fc2=3202.87322, cc1=1396.72711, cc2=975.48995, alpha_c=0.0)

        # various crops of pictures
        # we want to start with index 1, so we put an dud in crop_list[0]
        self.crop_list = [0]

        # resolution fields
        self.x_thumbnail_resolution = 800
        self.y_thumbnail_resolution = 600
        self.x_resolution = 2400
        self.y_resolution = 1800
Example #53
0
	ri.TransformBegin()
	ri.AttributeBegin()
	ri.Color([1,1,1])
	ri.Translate( 0,-1.0,0)
	ri.Rotate(-90,1,0,0)
	ri.Rotate(36,0,0,1)
	ri.Scale(0.4,0.4,0.4)
	ri.Surface("plastic")
	ri.Geometry("teapot")
	ri.AttributeEnd()
	ri.TransformEnd()
	

	
ri = prman.Ri() # create an instance of the RenderMan interface
cam=Camera(Vector(4,0.2,4,1),Vector(0,0,0,1),Vector(0,1,0,0))
cam.fov=40

filename = "Camera.rib" 

ri.Begin(filename)

ri.Declare("Light1" ,"string")
ri.Declare("Light2" ,"string")
ri.Declare("Light3" ,"string")
# now we add the display element using the usual elements
# FILENAME DISPLAY Type Output format
ri.Display("Camera.exr", "framebuffer", "rgba")

cam.Format(ri)
Example #54
0
 def __init__(self):
     self.player = PlayerClass.Player()
     self.mainCamera = Camera.camera()
     self.mainCamera.setCamera(self.player)
     self.MapRenderer = MapRender.mapRender(40,800,600)
     self.MapRenderer.changeLevel(Level1)
            timeOfLastSound = time.time()

        #Show the banner, if we're supposed to
        if showBanner:
            cv2.rectangle(frame, (0,0), (320, 30), (0,0,255), -1)
            cv2.putText(frame, "Movement Detected", (0,25), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)

        #Activate/Deactivate the banner every 0.5 seconds
        if time.time() - timeOfLastFlash > 0.5: #"""map(differenceScore, warningThreshold, warningThreshold * 2, 2, 1)"""
            showBanner = not showBanner

            timeOfLastFlash = time.time()

    return frame

getResetBG() #Setup the background subtractor

#Some test code, only to be run when this isn't being used as a library
if __name__ == "__main__":
        while True:
            #ret, frame = cap.read()
            frame = Camera.getIMG()
            fgmask = fgbg.apply(frame)
            #res = cv2.bitwise_and(frame, frame, mask = fgmask)
            res = processDifference(frame)
            cv2.imshow('img', res)

            if cv2.waitKey(20) == 27:
                break
        cv2.destroyAllWindows()
Example #56
0
class Game(object):
	def __init__(self):
		self.display_init()
		self.running = True
		self.clock = pygame.time.Clock()

		self.skybox = Skybox('textures/skybox/minecraft','png')
		self.camera = Camera()
		self.camera.setPosition((level.playerX,level.playerY,level.playerZ))
		#self.camera.setPosition(cn.level.playerPos)
		#self.camera.setPosition((0,20,0))

		self.plane = glGenLists(1)

		self.ID = 3

		glNewList(self.plane,GL_COMPILE)
		glPushMatrix()
		glColor3ub(66,66,66)
		tes = Tessellator.instance
		tes.startDrawing(GL_LINES)
		for i in range(-50,50):
			tes.addVertex(-50, 0, i)
			tes.addVertex(50, 0, i)
			tes.addVertex(i, 0,-50)
			tes.addVertex(i, 0, 50)
		tes.draw()
		glPopMatrix()
		glEndList()

		self.groundpos = None
		self.cubepos = Vector3()
		self.near = Vector3()
		self.far = Vector3()


		self.lasttime = time.time()

		self.cloudTickCounter = 0

		self.hit = None

	def run(self):
		while self.running:
			delta = time.time()-self.lasttime
			self.lasttime += delta

			world.timeChange(delta*10)

			self.event_handler(pygame.event.get())
			self.key_handler(pygame.key.get_pressed())
			self.mouse_handler(pygame.mouse.get_pressed())
			self.renderScene(delta)
			self.timer()
			pygame.display.flip()

		pygame.quit()

	def display_init(self):
		#self.screen = pygame.display.set_mode(SCREEN_SIZE,SCREEN_FLAG)
		glClearColor(*BLACK)
		glClearDepth(1)
		w = SCREEN_SIZE[0]
		h = SCREEN_SIZE[1]
		aspectRatio= w/h
		glViewport(0,0,w,h)
		glMatrixMode(GL_PROJECTION)
		glLoadIdentity()
		gluPerspective(35.0, w/h, 0.5 , 10000.0)
		glMatrixMode(GL_MODELVIEW)
		glLoadIdentity()

		pygame.mouse.set_visible(True)
		pygame.mouse.set_pos((w//2,h//2))

		glEnable(GL_LIGHTING)
		glLightfv(GL_LIGHT1, GL_AMBIENT,(0,0,0,1,0 ))
		glLightfv(GL_LIGHT1, GL_DIFFUSE, (0.95,0.95,0.95,1.0))
		glLightfv(GL_LIGHT1, GL_SPECULAR, (0.95,0.95,0.95,1.0))
		glLightfv(GL_LIGHT1, GL_POSITION, (128, 128.0 , 2.0, 1.0 ))
		glEnable(GL_LIGHT1)

		#glEnable(GL_FOG)
		glFogfv(GL_FOG_COLOR, (GLfloat * 4)(0.5, 0.69, 1.0, 1))
		glHint(GL_FOG_HINT, GL_DONT_CARE)
		glFogi(GL_FOG_MODE, GL_LINEAR)
		glFogf(GL_FOG_DENSITY, 0.35)
		glFogf(GL_FOG_START, 20.0)
		glFogf(GL_FOG_END, 60.0)

		print(glGetString(GL_VERSION))

		glFrontFace(GL_CW)
		glEnable(GL_ALPHA_TEST)
		glEnable (GL_DEPTH_TEST)

		glMaterialfv(GL_FRONT, GL_SPECULAR, (0.1,0.1,0.1, 1.0));
		glMaterialfv(GL_FRONT, GL_SHININESS, (10.0));
		glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
		glEnable(GL_COLOR_MATERIAL);


	def renderScene(self,delta):
		glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
		glLoadIdentity()

		self.camera.setPerspective()
		playerPos = self.camera.position.copy()
		playerPos.z = -playerPos.z
		
		near,far = self.camera.getMouseRay(*pygame.mouse.get_pos())

		direction = far-near
		direction.normalise()

		position = Vector3(self.camera.position)
		position.z = -position.z

		self.groundpos = None

		self.hit = world.getRayHit(position,direction)
		if self.hit:
			self.groundpos = Vector3(self.hit[:3])
			self.delPos = Vector3(self.hit[3:6])


		# Instance of Tessellator
		tes = Tessellator.instance


		glPushMatrix()

		# Render Sky

		self.skybox.render()

		glDisable(GL_FOG)

		# Render Sun
		glPushMatrix()
		glTranslatef(playerPos.x,playerPos.y,playerPos.z)
		glRotatef(-90.0, 1.0, 0.0, 0.0)
		glRotatef(7.5*world.worldHour,1.0,0.0,0.0)
		sunp = 30.0
		glColor4f(1.0, 1.0, 1.0, 1.0)
		glEnable(GL_TEXTURE_2D)
		glEnable(GL_BLEND)	
		glBlendFunc(GL_SRC_ALPHA, GL_ONE)	
		glBindTexture(GL_TEXTURE_2D,TextureManager.get("sun").texture)	
		tes.startDrawingQuads()
		tes.addVertexWithUV(-sunp, 300.0, -sunp, 0.0, 0.0)
		tes.addVertexWithUV(sunp, 300.0, -sunp, 1.0, 0.0)
		tes.addVertexWithUV(sunp, 300.0, sunp, 1.0, 1.0)
		tes.addVertexWithUV(-sunp, 300.0, sunp, 0.0, 1.0)
		tes.draw()
		glDisable(GL_BLEND)
		glPopMatrix()


		# Render Clouds
		glPushMatrix()
		glDisable(GL_CULL_FACE)

		glTranslatef(playerPos.x,playerPos.y,playerPos.z)


		predictY = self.camera.position.y
		spacing = 32
		amount = int(256 / spacing)
		glBindTexture(GL_TEXTURE_2D,TextureManager.get("clouds").texture)	
		glEnable(GL_BLEND)
		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

		red = 1.0
		green = 1.0
		blue = 1.0

		small = 4.8828125e-4
		cloudTick = (self.cloudTickCounter + delta)*500
		self.cloudTickCounter+= delta
		predictX = self.camera.position.x + cloudTick * 0.029999999329447746
		predictZ = -self.camera.position.z
		tx = floor(predictX/2048)
		tz = floor(predictZ/2048)
		predictX -= (tx * 2048)
		predictZ -= (tz * 2048)
		#y = 128 - predictY + 0.33
		y = 128
		cloudX = (predictX * small)
		cloudZ = (predictZ * small)
		tes.startDrawingQuads()

		#spacing*=2
		#amount=int(amount*1)
		

		for ix in range(-spacing*amount,spacing*amount,spacing):
			for iz in range(-spacing*amount,spacing*amount,spacing):
				tes.addColor(red, green, blue, 0.8)
				tes.addVertexWithUV((ix + 0), y, (iz + spacing), ((ix + 0) * small + cloudX), ((iz + spacing) * small + cloudZ))
				tes.addColor(red, green, blue, 0.8)
				tes.addVertexWithUV((ix + spacing), y, (iz + spacing), ((ix + spacing) * small + cloudX), ((iz + spacing) * small + cloudZ))
				tes.addColor(red, green, blue, 0.8)
				tes.addVertexWithUV((ix + spacing), y, (iz + 0), ((ix + spacing) * small + cloudX), ((iz + 0) * small + cloudZ))
				tes.addColor(red, green, blue, 0.8)
				tes.addVertexWithUV((ix + 0), y, (iz + 0), ((ix + 0) * small + cloudX), ((iz + 0) * small + cloudZ))
		tes.draw()
		glColor4f(1.0, 1.0, 1.0, 1.0)
		glDisable(GL_BLEND)
		#glEnable(GL_CULL_FACE)
		glPopMatrix()



		#glEnable(GL_FOG)

		# Render Plane
		#glCallList(self.plane)
		#test.CUBE()

		# Render World
		#render.render(*floatToInt(*playerPos.toList()))
		world.render(playerPos)

		glPushMatrix()
		if self.groundpos:
			glTranslatef(*floatToInt(*self.groundpos.toList()))
			glCallList(selectBlock)

		glPopMatrix()

		self.drawText()
		glPopMatrix()

	def timer(self):
		self.clock.tick()

	def key_handler(self,keys):
		self.camera.strafe = self.camera.forward = self.camera.up= 0

		vel = 0.3
		if pygame.key.get_pressed()[pygame.K_z]:
			vel = 10


		if keys[ord('a')]:
			self.camera.MoveX(-vel)
		if keys[ord('d')]:
			self.camera.MoveX(vel)
		if keys[ord('w')]:
			self.camera.MoveZ(vel)
		if keys[ord('s')]:
			self.camera.MoveZ(-vel)
		if keys[ord('q')]:
			self.camera.Roll(-vel)
		if keys[ord('e')]:
			self.camera.Roll(vel)
		if keys[K_UP]:
			self.camera.Pitch(-vel)
		if keys[K_DOWN]:
			self.camera.Pitch(vel)
		if keys[K_LEFT]:
			self.camera.Yaw(-vel)
		if keys[K_RIGHT]:
			self.camera.Yaw(vel)
		if keys[ord('r')]:
			self.camera.reset()
		if keys[K_SPACE]:
			self.camera.MoveY(vel)
		if keys[K_LSHIFT]:
			self.camera.MoveY(-vel)

	def mouse_handler(self,mouse):
		pass

	def event_handler(self,events):
		for event in events:
			if event.type == QUIT:
				self.running = False
			elif event.type == KEYDOWN:
				if event.key == K_ESCAPE:
					self.running = False
				elif event.key == K_RETURN:
					try:
						print("return:",eval(input("Enter Command:\n")))
					except:
						print("Command failed")
					else:
						print("Command excuted")
				elif event.key == K_1:
					self.ID = 1
				elif event.key == K_2:
					self.ID = 2
				elif event.key == K_3:
					self.ID = 3
				elif event.key == K_4:
					self.ID = 4
				elif event.key == K_5:
					self.ID = 5
				elif event.key == K_6:
					self.ID = 6
				elif event.key == K_7:
					self.ID = 7
				elif event.key == K_8:
					self.ID = 8

			elif event.type == MOUSEBUTTONDOWN:
				if not self.hit: continue	
				#face = self.hit[3]
				#newPos = self.groundpos+ Vector3(DELTA[face])
				#self.groundpos = position + direction*t
				newPos = self.groundpos
				if self.hit and newPos:
					if event.button == 3:
						world.setBlock(newPos.x,newPos.y,newPos.z,self.ID)
					elif event.button == 1:
						world.setBlock(self.delPos.x,self.delPos.y,self.delPos.z,0)

			elif event.type == MOUSEMOTION:
				x,y =pygame.mouse.get_pos()
				self.camera.Yaw(0.15*(x-SCREEN_SIZE[0]//2))
				self.camera.Pitch(0.15*(y-SCREEN_SIZE[1]//2))
				pygame.mouse.set_pos((SCREEN_SIZE[0]//2,SCREEN_SIZE[1]//2))

	def drawText(self):
		fpssf = font.render("FPS: %d"%self.clock.get_fps(),True,(255,255,0))
		fpstex = createTexture(fpssf)
		renderTexture(fpstex[0],(0,0),(fpstex[1],fpstex[2]))
		#deleteTexture(fpstex)

		xyz = font.render("X: %f Y: %f Z: %f"%(self.camera.position.x,
			self.camera.position.y,-self.camera.position.z),True,(255,255,0))
		xyztex = createTexture(xyz)
		renderTexture(xyztex[0],(0,SCREEN_SIZE[1]-xyztex[2]),(xyztex[1],xyztex[2]))
Example #57
0
def GetPlayerCamera():
    return Camera._ExistingCamera(_client.Camera)
Example #58
0
        
        glEnableClientState(GL_VERTEX_ARRAY)
        glVertexPointerf(pointer)
        glDrawElementsui(GL_QUADS, [0,1,2,3])      
        
#a = PygameWindow()
#a.start_main_loop()

n = Node(10)
n.set_mesh(TestCubeMesh())
n.set_scale(vector([5,5,5,1]))
n.set_rotation(vector([0,0,90,1]))
d = OpenGLDriver()
d.start_video()
eye_pos = vector([10.0,0.0,-10.0,1.0])
c = Camera()
c.set_eye(eye_pos)
c.set_reference(vector([0,0,0,1]))
alpha = 0.1

from PIL import Image
img = Image.open('./ball_8.jpg') # .jpg, .bmp, etc. also work
img_data = array(list(img.getdata()), int8)

texture = glGenTextures(1)
glPixelStorei(GL_UNPACK_ALIGNMENT,1)
glBindTexture(GL_TEXTURE_2D, texture)
glEnable(GL_TEXTURE_2D)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
Example #59
0
class Game:

  def __init__(self, screen):
    self.screen = screen
    self.map_rows = len(map)
    self.map_cols = len(map[0])
    self.world_rect = pygame.Rect(0, 0, TILE_SIZE*(self.map_cols+1), SCR_SIZE[1])
    self.bg_col = (0x69, 0x50, 0x36)
    self.lives = 4 # should be in player class but whatever
    self.big_font = pygame.font.Font(join('data', 'cour.ttf'), 72)
    self.font = pygame.font.Font(join('data', 'cour.ttf'), 30)

    self.load_grps()
    self.load_data()

  def load_grps(self):
    self.static_sprites = SPRITE_GRP()
    self.wall_sprites = SPRITE_GRP()
    self.player_sprites = SPRITE_GRP()
    self.block_sprites = SPRITE_GRP()

    self.all = self.block_sprites, self.player_sprites, self.wall_sprites,\
                self.static_sprites
    
  def load_data(self):
    # Static stuff first
    self.ceil = Ceil()
    self.ceil.player_lives = self.lives
    self.ground = Ground()
    self.static_sprites.add(self.ceil, self.ground)

    # Wall stuff
    self.wall = Wall()
    self.wall_sprites.add(self.wall)

    # Player stuff
    self.player = Player()
    self.player_sprites.add(self.player, self.player.bullet)
    self.player.add_collision_grps(*self.all)

    # Block stuff
    self.map_var = 1
    self.render_blocks(0, self.map_cols/4)

  def render_blocks(self, start, end):
    for y in xrange(self.map_rows):
      for x in xrange(start, end):
        xx, yy = TILE_SIZE * x, TILE_SIZE * y + CEIL_Y
        cell = map[y][x]
        pos = xx, yy
        if cell == '.': continue
        elif cell == '#':
          self.block_sprites.add(Block(pos=pos, unbreakable=1))
        elif cell == '0':
          self.block_sprites.add(Block(pos=pos, reflect=1))
        elif cell == '*':
          self.block_sprites.add(Block(pos=pos))
        elif cell == '^':
          self.block_sprites.add(Spike(pos=pos))
        elif cell == '@':
          r = Rock(pos=pos)
          r.player = self.player
          r.ground = self.ground
          self.block_sprites.add(r)


  def start(self):
    self.clock = pygame.time.Clock()
    self.keep_going = 1
    self.camera = Camera(screen, self.world_rect, self.player)
    self.blank_scr("OMFG A WALL\nOF LAVA!\nRUN AWAY!")

    while self.keep_going:
      self.clock.tick(FRAME_RATE)
      for event in pygame.event.get():
        if event.type == QUIT:
          exit()
        if event.type == KEYDOWN:
          if event.key == K_ESCAPE:
            self.keep_going = 0
          """if event.key == K_z: # jump # handled in player class now
            if not self.player.states.jumping in self.player.state_lst and not self.player.states.falling in self.player.state_lst:
              self.player.state_lst.append(self.player.states.jumping)"""
          if event.key == K_x: # attack
            if not self.player.states.attacking in self.player.state_lst:
              self.player.state_lst.append(self.player.states.attacking)
              sounds['fire'].play()
          if event.key == K_f:
            print "FPS:", self.clock.get_fps()
          if event.key == K_p:
            self.blank_scr('PAUSED')

      self.screen.fill(self.bg_col, (0, CEIL_Y, SCR_SIZE[0], SCR_SIZE[1] - 2*CEIL_Y))
      self.camera.update()
      self.camera.update_grps(*self.all)
      self.check_some_collisions()
      self.camera.draw_grps(*self.all)
      if self.keep_going:
        pygame.display.flip()
    sounds['lava'].stop()

  def check_some_collisions(self):
    # like player with edges of world
    if self.player.rect.left < 0: self.player.rect.left = 0
    if self.player.rect.right > self.world_rect.right: self.player.rect.right = self.world_rect.right
    # and bullets against blocks
    for sprite in self.player_sprites.sprites():
      if 'Bullet' in str(sprite):
        for block in self.block_sprites.sprites():
          if abs(sprite.rect.centerx - block.rect.centerx) >= sprite.max_distance:
            continue
          if block.rect.collidepoint(sprite.rect.center):
            if 'Block' in str(block):
              if block.reflect: sprite.dir *= -1
              elif block.unbreakable: sprite.done = 1; break
              else: sprite.done = 1; self.block_sprites.remove(block); break
            else:
              sprite.done = 1; break
    # and if player is dead
    # and to revive the player if the death animation is done
    if self.player.dead:
      if self.player in self.player_sprites:
        self.lives -= 1
        self.ceil.player_lives = self.lives
        self.wall.old_speed = self.wall.speed
        self.wall.speed = 0
        self.death_animation()
      else:
        for ball in self.player_sprites.sprites():
          if ball.done and 'DeathBall' in str(ball):
            self.player_sprites.empty()
            self.player_sprites.add(self.player, self.player.bullet)
            self.player.dead = 0
            self.player.rect.top = CEIL_Y
            self.player.rect.left += TILE_SIZE/2
            self.wall.speed = self.wall.old_speed
            self.player.state_lst = [self.player.states.standing]
            if self.lives <= 0:
              self.blank_scr('GAME OVER')
            break
    # and to remove any blocks the wall hits (speeds up game over time!)
    for block in self.block_sprites.sprites():
      if block.rect.right - self.wall.rect.right < 0:
        self.block_sprites.remove(block)
    # and to render more blocks
    f = 1.0 * self.player.rect.right / self.world_rect.right
    if abs(f - 1./4) <= .1 and self.map_var == 1:
      self.map_var += 1
      self.kill_some_blocks()
      self.render_blocks(self.map_cols/4, 2*self.map_cols/4)
    elif abs(f - 2/4.) <= .1 and self.map_var == 2:
      self.map_var += 1
      self.kill_some_blocks()
      self.render_blocks(2*self.map_cols/4, 3*self.map_cols/4)
    elif abs(f - 3/4.) <= .1 and self.map_var == 3:
      self.map_var += 1
      self.kill_some_blocks()
      self.render_blocks(3*self.map_cols/4, 4*self.map_cols/4)
    # and to check victory
    if self.world_rect.right - self.player.rect.right < TILE_SIZE: # win!
      if self.lives == 4: txt = 'WOW!\nCongratumalations!\nYou beat it\nwith all lives!'
      elif self.lives == 3: txt = 'Congratumalations!\nYou only died\nonce!'
      elif self.lives == 2: txt = 'No shame in\nthis win!'
      elif self.lives == 1: txt = 'Phew...\nBarely won.'
      self.keep_going = 0
      self.blank_scr(txt)

  def kill_some_blocks(self):
      for block in self.block_sprites.sprites():
        if self.player.rect.right - block.rect.right > SCR_SIZE[0]/2 + TILE_SIZE: 
          self.block_sprites.remove(block)

  def death_animation(self):
    sounds['death'].play()
    self.player_sprites.remove(self.player)
    for i in xrange(8):
      ball = DeathBall(i)
      ball.rect.center = self.player.rect.center
      self.player_sprites.add(ball)

  def blank_scr(self, txt):
    sounds['lava'].stop()
    if txt == 'GAME OVER': self.keep_going = 0
    self.screen.fill((0,0,0))
    texts = txt.split('\n')
    lines = len(texts)
    for i in xrange(lines):
      draw_text(self.screen, texts[i], self.big_font, (SCR_SIZE[0]/2, 3*SCR_SIZE[1]/5 - 72*(lines - i)), (255,255,255), 1)
    draw_text(self.screen, 'Press any key to continue', self.font, (SCR_SIZE[0]/2, 4*SCR_SIZE[1]/5), (255,255,255), 1)
    while 1:
      self.clock.tick(10)
      for event in pygame.event.get():
        if event.type == QUIT:
          exit()
        if event.type == KEYDOWN:
          if self.keep_going: sounds['lava'].play(-1)
          return
      pygame.display.flip()