Hallo Leute,
Ich versuche gerade um mit pygame random zahlen zu generieren im while loop. Wenn ich dies aber mache, dann spinnen meine zahlen wie verrueckt auf dem bildschirm. Habt ihr vielleicht eine ahnung wie ich immer auf einen event, neue zahlen abfragen kann?
random zahl im while loop
Mit pygame kann man keine Zufallszahlen generieren, dafür ist das `random`-Modul aus der Standardbibliothek da.
Und was heisst die Zahlen "springen auf dem Bildschirm"? Erzeugst Du Zufallszahlen und benutzt diese als Koordinaten um Grafiken zu platzieren? Wenn ja, was erwartest Du denn anderes als "springen", wenn Du das in einer Schleife immer wieder machst?
Und was heisst die Zahlen "springen auf dem Bildschirm"? Erzeugst Du Zufallszahlen und benutzt diese als Koordinaten um Grafiken zu platzieren? Wenn ja, was erwartest Du denn anderes als "springen", wenn Du das in einer Schleife immer wieder machst?
- lockwood
- User
- Beiträge: 7
- Registriert: Donnerstag 13. Dezember 2007, 14:35
- Wohnort: Holland
- Kontaktdaten:
Ich moechte das er immer zufalls zahlen generiert wenn ich auf dem instance knopf druecke. Ich habe darfuer leider keine richtige loesung gefunden...
Code: Alles auswählen
"""
Lockwood Random loop control
"""
import pygame
import random
from pygame.locals import *
class Button(pygame.sprite.Sprite):
"""The button class"""
def __init__(self, image, posxy):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image)
self.posxy = posxy
self.rect = self.image.get_rect(topleft=(posxy))
def draw(self, surface):
surface.blit(self.image, self.posxy)
class Main():
def __init__(self):
#init pygame
pygame.init()
pygame.display.set_caption("Lockwood Random loop conrtol")
self.screen = pygame.display.set_mode((800,600))
self.buttons = []
self.add_button(Button("1.bmp", [100, 100]))
def add_button(self, button):
self.buttons = self.buttons + [button]
def random_question(self):
self.randomA = random.randint(0,10)
self.randomB = random.randint(0,10)
self.answer = self.randomA + self.randomB
return self.randomA, self.randomB
def run(self):
#run event loop
self.loop()
#pygame quiting
pygame.quit()
def loop(self):
exit = False
self.clock = pygame.time.Clock()
while not exit:
self.clock.tick(50)
#random question in loop
self.random_question()
exit = self.EventHandler()
self.draw()
def EventHandler(self):
exit = False
for event in pygame.event.get():
if event.type == QUIT:
exit = True
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
exit = True
elif event.type == MOUSEBUTTONDOWN:
self.check_points(pygame.mouse.get_pos())
return exit
def check_points(self, (x, y)):
for button in self.buttons:
if button.rect.collidepoint(x, y):
print "pressed: ", button.posxy
def draw(self):
self.screen.fill((0,0,0))
font = pygame.font.Font("times.ttf", 40)
text = font.render("%d + %d " %(self.randomA,self.randomB), 1, (255, 255, 0))
self.screen.blit(text, [100, 150])
for button in self.buttons:
button.draw(self.screen)
pygame.display.flip()
#run the program
Main().run()
[url=http://home.deds.nl/~lockwood/]My Dutch OLPC Page[/url]
:D
:D