diff --git a/PythonAPI/no_rendering_mode.py b/PythonAPI/no_rendering_mode.py new file mode 100644 index 000000000..913951c5f --- /dev/null +++ b/PythonAPI/no_rendering_mode.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python + +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + +# Allows visualising a 2D map generated by vehicles. + +""" +Welcome to CARLA map visualizer + + ESC : quit +""" + +import sys +import argparse +try: + import pygame + from pygame.locals import K_DOWN + from pygame.locals import K_LEFT + from pygame.locals import K_RIGHT + from pygame.locals import K_UP + from pygame.locals import K_ESCAPE +except ImportError: + raise RuntimeError('cannot import pygame, make sure pygame package is installed') + +# Handles keyboard and mouse input + + +class KeyboardInput(object): + + def _parse_events(self): + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + elif event.type == pygame.KEYUP: + # Quick actions + if event.key == K_ESCAPE: + pygame.quit() + sys.exit() + + def _parse_keys(self): + keys = pygame.key.get_pressed() + # if keys[pygame.K_LEFT]: + # Do something + + def parse_input(self): + self._parse_events() + self._parse_keys() + + +def game_loop(args): + + # Init PyGame and classes + pygame.init() + keyboard = KeyboardInput() + + try: + display = pygame.display.set_mode((args.width, args.height)) + pygame.display.set_caption(args.description) + + while True: + keyboard.parse_input() + + display.fill((0, 0, 0)) + pygame.display.update() + + finally: + pygame.quit() + + +def main(): + # Parse arguments + argparser = argparse.ArgumentParser( + description='CARLA No Rendering Mode Visualizer') + print (argparser.description) + argparser.add_argument( + '--res', + metavar='WIDTHxHEIGHT', + default='1280x720', + help='window resolution (default: 1280x720)') + + args = argparser.parse_args() + args.description = argparser.description + args.width, args.height = [int(x) for x in args.res.split('x')] + + # Call game_loop + try: + game_loop(args) + except KeyboardInterrupt: + print('\nCancelled by user. Bye!') + + +if __name__ == '__main__': + main()