Hi James, I can't answer your question because I don't know anything about pygame, but your code would look a lot better if you wrote a function (handleKeyEvent() say?) to avoid repeating all that code. One of the big advantages of using functions - aside from saving typing effort - is that they make the code more readable by replacing a lot of detail with a short descriptive phrase(the functions name). The other advantage is that if the code has to be fixed you only change it in one place so there's less chance of you accidentaly missing out one of the event handlers.
If the code is slightly diffeent each time - although from a quick look this doesn't seem to be the case here - you can parameterise the function so you can pass in either the changing values or some flag to indicate which variant you need. It's all part of helping us to see the wood instead of the trees... HTH Alan G. ----- Original Message ----- From: "james middendorff" <[EMAIL PROTECTED]> To: <tutor@python.org> Sent: Tuesday, May 17, 2005 4:40 AM Subject: [Tutor] help with my python app > Hello, I would like to be able to use the arrow keys > to control a remote control car, which I can do but > only one key at a time. I would like to press the up > key, then while it is moving forward, press the left > or right key to turn while it is moving forward? I am > sure there are probably better ways to write the code, > I am still learning all of this. Also if this > indention is off I am including the file > thanks > > #!/usr/bin/python > import parallel > import pygame > from pygame.locals import * > > p=parallel.Parallel() > p.setData(0) > > > > > > > > def main(): > # Initialise screen > pygame.init() > screen = pygame.display.set_mode((640, 480)) > pygame.display.set_caption("James' custom RC > Car Application") > > # Fill background > background = pygame.Surface(screen.get_size()) > background = background.convert() > background.fill((250, 250, 250)) > > # Display some text > font = pygame.font.Font(None, 36) > text = font.render("Which Way? ", 1, (10, 10, > 10)) > textpos = text.get_rect() > textpos.centerx = > background.get_rect().centerx > background.blit(text, textpos) > > # Blit everything to the screen > screen.blit(background, (0, 0)) > pygame.display.flip() > > # Event loop > while 1: > for event in pygame.event.get(): > if event.type == QUIT: > return > elif event.type == KEYDOWN: > if event.key == K_UP: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Forward", 1, (10, 10, > 10)) > textpos = text.get_rect() > textpos.centerx = > background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(1) > > > if event.key == K_DOWN: > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("Reverse", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(2) > > > if event.key == K_LEFT: > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("LEFT", 1, (10, 10, 10)) > textpos = > text.get_rect() > textpos.centerx = > background.get_rect().centerx > background.blit(text, > textpos) > > screen.blit(background, (0, 0)) > pygame.display.flip() > > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(8) > > > if event.key == K_RIGHT: > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("RIGHT", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(4) > > > > elif event.type == KEYUP: > if event.key == K_UP: > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("Which Way? ", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(0) > > > if event.key == K_DOWN: > > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("Which way? ", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(0) > > > if event.key == K_LEFT: > > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("Which way? ", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(0) > > > if event.key == K_RIGHT: > > background.fill((250, 250, 250)) > font = > pygame.font.Font(None, 36) > text = > font.render("Which way? ", 1, (10, 10, 10)) > textpos = > text.get_rect() > > textpos.centerx = background.get_rect().centerx > > background.blit(text, textpos) > > screen.blit(background, (0, 0)) > > pygame.display.flip() > > screen.blit(background, (0, 0)) > > pygame.display.flip() > p.setData(0) > > if __name__ == '__main__': main() > > "I would kill everyone in this room > for a drop of sweet beer." > ----Homer Simpson---- > > > > Yahoo! Mail > Stay connected, organized, and protected. Take the tour: > http://tour.mail.yahoo.com/mailtour.html > ---------------------------------------------------------------------- ---------- > #!/usr/bin/python > import parallel > import pygame > from pygame.locals import * > > p=parallel.Parallel() > p.setData(0) > > > > > > > > def main(): > # Initialise screen > pygame.init() > screen = pygame.display.set_mode((640, 480)) > pygame.display.set_caption("James' custom RC Car Application") > > # Fill background > background = pygame.Surface(screen.get_size()) > background = background.convert() > background.fill((250, 250, 250)) > > # Display some text > font = pygame.font.Font(None, 36) > text = font.render("Which Way? ", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > > # Blit everything to the screen > screen.blit(background, (0, 0)) > pygame.display.flip() > > # Event loop > while 1: > for event in pygame.event.get(): > if event.type == QUIT: > return > elif event.type == KEYDOWN: > if event.key == K_UP: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Forward", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(1) > > > if event.key == K_DOWN: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Reverse", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(2) > > > if event.key == K_LEFT: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("LEFT", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(8) > > > if event.key == K_RIGHT: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("RIGHT", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(4) > > > > elif event.type == KEYUP: > if event.key == K_UP: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Which Way? ", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(0) > > > if event.key == K_DOWN: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Which way? ", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(0) > > > if event.key == K_LEFT: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Which way? ", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(0) > > if event.key == K_RIGHT: > background.fill((250, 250, 250)) > font = pygame.font.Font(None, 36) > text = font.render("Which way? ", 1, (10, 10, 10)) > textpos = text.get_rect() > textpos.centerx = background.get_rect().centerx > background.blit(text, textpos) > screen.blit(background, (0, 0)) > pygame.display.flip() > screen.blit(background, (0, 0)) > pygame.display.flip() > p.setData(0) > > if __name__ == '__main__': main() > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor