Good news everyone! I found out why I could never get anywhere:
I was too afraid of breaking stuff so I didn't try to mess with anything. However, if you don't break it, how can you fix it? So, I looked over that pygame thing again and decided to just start doing things that came to mind. It took me five minutes to get it working, much faster than if I had begged someone to tell me how to do it. Python really is a simple language after all, I think I really understand this now! This is what my code looks like now: ******************************************* #Credit to scriptedfun (http://www.scriptedfun.com) for the help with the typing portion #Stil a very VERY barebones typing script. Still got one last part of the main #engine to go before getting to work on part two. import pygame from pygame.locals import * SCREENRECT = Rect(0, 0, 640, 480) class Textsprite(pygame.sprite.Sprite): def __init__(self, text): pygame.sprite.Sprite.__init__(self) self.text = text self.pos = 0 self.current_string = 0 self.update() def update(self): self.image = pygame.font.Font(None, 36).render(self.text[self.current_string], 1, (0, 0, 0)) self.highlight = pygame.font.Font(None, 36).render(self.text[self.current_string][:self.pos], 1, (0, 0, 255)) self.image.blit(self.highlight, (0, 0)) self.rect = self.image.get_rect() self.rect.center = pygame.display.get_surface().get_rect().center def keyin(self, key): if key == self.text[self.current_string][self.pos]: self.pos = self.pos + 1 elif key == K_TAB: self.pos = self.pos else: self.combo = 0 if len(self.text[self.current_string]) == self.pos: self.pos = 0 self.current_string = self.current_string +1 def main(): pygame.init() screen = pygame.display.set_mode(SCREENRECT.size) # make background background = pygame.Surface(SCREENRECT.size).convert() background.fill((255, 255, 255)) screen.blit(background, (0, 0)) pygame.display.update() # keep track of sprites all = pygame.sprite.RenderUpdates() # keep track of time clock = pygame.time.Clock() textsprite = Textsprite(["test string1", "another test!", "can you type this?"]) all.add(textsprite) # game loop while 1: # get input for event in pygame.event.get(): if event.type == QUIT: return elif event.type == KEYDOWN: if event.key == K_ESCAPE: return else: textsprite.keyin(event.unicode) # clear sprites all.clear(screen, background) # update sprites all.update() # redraw sprites dirty = all.draw(screen) pygame.display.update(dirty) # maintain frame rate clock.tick(30) if __name__ == '__main__': main() ******************************************* Now, there's just one problem, and I'm pretty sure you can see it: After the program goes through all the strings, it doesn't stop at the last one and tries to add one again. Which won't work, and the program will print an error about it going out of bounds. I'm working on that now, it should take no less than five or ten minutes to figure out. Thanks for all your help!
