corrected a bit, loop works, gas doesn't work
from visual import * import time import math import random from datetime import datetime import operator class lunar_lander(object): def __init__(self): scene.title = 'mini star wars' scene.width = 375 scene.height = 550 scene.center = (0,0) self.pos = (0,0) self.axis = 0 self.brandstofmeter = brandstofmeter() self.ruimteschip = ruimteschip() self.view = game_view(self) def play(self): t=0 dt=0.01 self.ruimteschip.updatemeter = False while t<999999999: time.sleep(0.01) self.ruimteschip.update(dt) t = t + dt if self.ruimteschip.updatemeter == True: self.brandstofmeter.update class game_view(object): def __init__(self,owner): autoscale=True box(pos=( 0, -375, 0), length=500, height=5, width=0, color = color.white) box(pos=(0,375, 0), length=500, height=5, width=0, color = color.white) box(pos=(-250,0, 0), length=5, height=750, width=0, color = color.white) box(pos=(250,0, 0), length=5, height=750, width=0, color = color.white) maan = curve(pos=[(-250,-353),(-240,-341),(-210,-354),(-199.5,-374)],color=color.red) maana = curve(pos=[(-199.5,-374),(-166,-374)],color=color.green) maanb = curve(pos=[(-166,-374),(-140,-357),(-80,-319),(-40,-361),(0,-321),(40,-329),(80,-347)],color=color.red) maanc = curve(pos=[(80,-347),(140,-347)],color=color.green) maand = curve(pos=[(140,-347),(162,-337),(189.5,-365),(210,-355),(240,-372),(250,-338)],color=color.red) for i in random.sample(range (-250,250),20): for j in random.sample(range (-375,375),20): sterren = points(pos = [i,j,0],size = 2, color=color.white) class brandstofmeter(object): def __init__(self): axis = 0 self.pos = (210,345) self.length = 25 self.height = 45 self.meter = box(pos = self.pos, length = self.length, height = self.height,color = color.green) def update(self): self.height = self.height - 0.2 print "ok" class ruimteschip(object): def __init__(self): self.pos = vector(0,330) self.acceleration = vector(0,-88,0) self.axis = (1,0,0) self.hoek = (90*math.pi)/180 self.graden = math.degrees(self.hoek) self.gas = vector(10 * cos(self.hoek),10 * sin (self.hoek)) self.velocity = vector(0,0,0) self.angle = pi / 2 self.updatemeter = False self.view = ruimteschip_view(self) self.vlam = self.view.vlam self.frame = self.view.frame self.zicht = brandstofmeter() def update(self,dt): self.velocity = self.velocity + (self.acceleration * dt) self.pos = self.pos + self.velocity * dt if scene.kb.keys: key = scene.kb.getkey() if key == "left": # linkerafwijking self.frame.axis -= (0, 0, 0.05) self.gas = vector(-sin(self.angle), cos(self.angle)) self.vlam.visible = True self.updatemeter = True elif key == "right": # rechterafwijking self.frame.axis += (0, 0, 0.05) self.gas = vector(sin(self.angle), cos(self.angle)) elif key == "up": self.deviate() self.vlam.visible = False self.updatemeter = False if self.pos.x > 250: self.pos.x = -250 if self.pos.x < -250: self.pos.x = 250 self.view.update(self) def deviate(self): # zet veranderde snelheid self.frame.velocity += self.gas self.frame.pos += self.frame.velocity # Reset valsnelheid self.frame.velocity -= self.gas class ruimteschip_view(object): def __init__(self,owner): self.owner = owner self.frame = frame(pos = owner.pos,axis = owner.axis) self.motor = curve(frame = self.frame,pos=[(0,24.0),(22.0,24.0),(22.0,39.0),(-22.0,39.0),(-22,24),(0,24)]) self.capsule = curve(frame = self.frame,color = color.blue ,pos=[(0,39),(-3,39),(-9,44),(-12,46),(-18,48),(-22,50),(-18,52),(-12,54),(-9,56),(-3,61),(0,61),(3,59),(9,56),(12,54),(18,52),(22,50),(18,48),(12,46),(9,44),(3,39),(0,39)]) self.poota = curve(frame = self.frame,pos = [(-18,24),(-20,24),(-20,0),(-18,0),(-18,24)]) self.pootb = curve(frame = self.frame,pos = [(18,24),(20,24),(20,0),(18,0),(18,24)]) self.vlam = curve(frame = self.frame,color = color.orange , visible=false,pos = [(0,24.0),(-9.0,14.0),(0,-5.0),(9,14.0),(0,24.0)]) def update(self,owner): self.frame.axis = owner.axis self.frame.pos = owner.pos self.frame.velocity = owner.velocity -- http://mail.python.org/mailman/listinfo/python-list