Mercurial > atc
view atc_single.py @ 18:aa0391c55f93
TODO update
committer: Jeff Sipek <jeffpc@jeff.(none)> 1120878980 -0400
author | Jeff Sipek <jeffpc@jeff.(none)> |
---|---|
date | Sat, 09 Jul 2005 03:16:20 -0400 |
parents | 243941ec0a36 |
children | 4c026c5634f9 |
line wrap: on
line source
#/* # * ATC - Air Traffic Controller simulation game # * # * Copyright (C) 2004, 2005 Josef "Jeff" Sipek <jeffpc@optonline.net> # * # * This program is free software; you can redistribute it and/or modify # * it under the terms of the GNU General Public License as published by # * the Free Software Foundation; either version 2 of the License, or # * (at your option) any later version. # * # * This program is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # * GNU General Public License for more details. # * # * You should have received a copy of the GNU General Public License # * along with this program; if not, write to the Free Software # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # * # * @(#) %M% %I% %E% %U% # */ import pygame import sys import atc_colors import atc_utils import atc_plane import atc_message def single(screen): """ Main fn to run the single player game """ # background music #atc_utils.playmusic("some.mp3"); # Set background background = pygame.Surface(screen.get_size()).convert() background.fill(atc_colors.black) (back_image, back_rect) = atc_utils.load_png('data/image/background.png') background.blit(back_image, (0, 0)) # Some text # font = pygame.font.Font(None, 36) # text = font.render("Air Traffic Controller", 1, atc_colors.red) # textpos = text.get_rect() # textpos.centerx = background.get_rect().centerx # background.blit(text, textpos) #blit! screen.blit(background, (0, 0)) pygame.display.flip() planes = [atc_plane.Plane(callsign="N12422",flightno="Delta 79",vel=(50, 50, 10)),] mess = atc_message.Message() cmd = "" while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: mess.pickup_kill = 1 sys.exit() if event.type == pygame.KEYDOWN: # commands #if event.key == pygame.K_q: # mess.pickup_kill = 1 # return if event.key == pygame.K_a: cmd += 'A' if event.key == pygame.K_b: cmd += 'B' if event.key == pygame.K_c: cmd += 'C' if event.key == pygame.K_d: cmd += 'D' if event.key == pygame.K_e: cmd += 'E' if event.key == pygame.K_f: cmd += 'F' if event.key == pygame.K_g: cmd += 'G' if event.key == pygame.K_h: cmd += 'H' if event.key == pygame.K_i: cmd += 'I' if event.key == pygame.K_j: cmd += 'J' if event.key == pygame.K_k: cmd += 'K' if event.key == pygame.K_l: cmd += 'L' if event.key == pygame.K_m: cmd += 'M' if event.key == pygame.K_n: cmd += 'N' if event.key == pygame.K_o: cmd += 'O' if event.key == pygame.K_p: cmd += 'P' if event.key == pygame.K_q: cmd += 'Q' if event.key == pygame.K_r: cmd += 'R' if event.key == pygame.K_s: cmd += 'S' if event.key == pygame.K_t: cmd += 'T' if event.key == pygame.K_u: cmd += 'U' if event.key == pygame.K_v: cmd += 'V' if event.key == pygame.K_w: cmd += 'W' if event.key == pygame.K_x: cmd += 'X' if event.key == pygame.K_y: cmd += 'Y' if event.key == pygame.K_z: cmd += 'Z' if (event.key == pygame.K_0) or (event.key == pygame.K_KP0): cmd += '0' if (event.key == pygame.K_1) or (event.key == pygame.K_KP1): cmd += '1' if (event.key == pygame.K_2) or (event.key == pygame.K_KP2): cmd += '2' if (event.key == pygame.K_3) or (event.key == pygame.K_KP3): cmd += '3' if (event.key == pygame.K_4) or (event.key == pygame.K_KP4): cmd += '4' if (event.key == pygame.K_5) or (event.key == pygame.K_KP5): cmd += '5' if (event.key == pygame.K_6) or (event.key == pygame.K_KP6): cmd += '6' if (event.key == pygame.K_7) or (event.key == pygame.K_KP7): cmd += '7' if (event.key == pygame.K_8) or (event.key == pygame.K_KP8): cmd += '8' if (event.key == pygame.K_9) or (event.key == pygame.K_KP9): cmd += '9' if (event.key == pygame.K_COLON) or (event.key == pygame.K_SEMICOLON): cmd += ': ' if event.key == pygame.K_SPACE: cmd += " " if event.key == pygame.K_ESCAPE: cmd = "" if event.key == pygame.K_BACKSPACE: cmd = cmd[:-1] if event.key == pygame.K_TAB: pass # fixme, tab complete call signs/flight numbers, commands, etc. if (event.key == pygame.K_KP_ENTER) or (event.key == pygame.K_RETURN): if (cmd == "QUIT"): mess.pickup_kill = 1 return flno = cmd_plane(cmd) cmd = cmd_cmd(cmd) print "plane = " + flno + ", cmd = " + cmd for plane in planes: if plane.flightno.upper() == flno.upper(): print "Found match!" plane.process(cmd) break cmd = "" screen.blit(background, (0, 0)) for plane in planes: plane.display(screen) plane.update() if (plane.status == atc_plane.plane_CRASHED): mess.write(screen,plane.callsign + ": PLANE CRASHED") plane.status = atc_plane.plane_DEAD if (cmd): font = pygame.font.Font(None, 18) text = font.render(cmd, 1, atc_colors.white) screen.blit(text, (25, 735)) pygame.display.flip() def cmd_plane(cmd): return cmd.split(': ')[0] def cmd_cmd(cmd): # FIXME: what if no split happens? return cmd.split(': ')[1] if (__name__ == '__main__'): print "Don't do it!"