YOU'RE AWESOME!!!!! Thank you, I was trying to figure out how to do it, and after a while thought my idea was completely wrong... I owe you one, I'll go and try this right now!
Well, actually, after I finish all of the homework that's due tomorrow. After I get this down, I just have to get the combo timer system thing up... But I'll ask about that a little later. Thank you! On Thu, 4 Jan 2007 15:24:46 -0500 Brandon N <[EMAIL PROTECTED]> wrote: > I will not give you the code since you have stated this in an > assignment, but hopefully I can help. > > You are correct that you will need an array, or a list in Python, to > store the strings. I would be more concerned with ease of > programming than efficiency, as this is a pretty straightforward and > non- demanding application. > > So, with that said, you will want your Textsprite class to take a > list of strings instead of just a string. You can do this by saying: > > a = Textsprite(["test string1", "another test!", "can you type > this?"]) > > Now, in your textsprite class, you have a variable that stores the > index of the current letter. You will also have to store the index > of the current string, and replace all references of self.text with > it, as in self.text[self.current_string]. Now, when the user > completes a string, you can increment self.current_string and reset > self.pos and the next string will be presented. > > I hope that this is helpful for you. > > Cheers, > Brandon > > On Jan 4, 2007, at 2:45 PM, Charles Christie wrote: > > > Hey, I am making a typing game in Python using pygame. I have > > finally hit a > > roadblock, and I think I'm toast. I started this game as my senior > > project, > > and I need to have something to at least demonstrate by June. > > > > I think I screwed myself on this one. I thought I knew a > > reasonable amount of > > programming, but absolutely none of it is coming in handy. I had > > to ask for > > help to get what I have now, and now I've hit a road block. > > > > So, what I need is: > > > > A. To find a way to feed multiple strings into the program. As in, > > when you > > finish one string, instead of starting it over again you instead go > > to the next word in the list, which I guessed should be an array of > > strings. I'm probably wrong, though. What's the most efficient (or > > easiest) way to do this? > > > > B. Two timers, a combo timer and a word timer that count backwards. > > I know I can figure out how to do these myself, though. > > > > The code I have so far looks like this: > > ************************************************************** > > #Credit to scriptedfun (http://www.scriptedfun.com) for the help > > #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.update() > > def update(self): > > self.image = pygame.font.Font(None, 36).render(self.text, > > 1, (0, 0, 0)) > > self.highlight = pygame.font.Font(None, > > 36).render(self.text[: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.pos]: > > self.pos = self.pos + 1 > > self.combo = self.combo + 1 > > else: > > self.combo = 0 > > if len(self.text) == self.pos: > > self.pos = 0 > > > > 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('It works!') > > 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() > > ************************************************************** > > > > I've never used a mailing list before. I'm quite new at this. Sorry > > if I disobeyed a rule of conduct or did something considered > > implite/noobish/stupid. >
