problem with exam task for college
jeltedeproft at hotmail.com
jeltedeproft at hotmail.com
Sun Jan 13 08:57:41 EST 2013
this is again a newer version, right now the velocity does in fact turn, but the view doesn't follow, it keeps the ship vertical.
i'm also having trouble letting the flame appear when pressing the "up" button
and when the ship rotates the horizontal velocity keeps getting bigger and bigger
i also have to make the game end when the ship hits the moon on the wrong place
i'm kinda stressed out because this has to be done by the 15th i've been studying like crazy the past week. If anyone could help me out i will deeply appreciate it, here is the code
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,-20,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
print self.velocity
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.velocity += self.gas
self.frame.pos += self.velocity
else:
self.vlam.visible = False
self.updatemeter = False
self.velocity -= self.gas
if self.pos.x > 250:
self.pos.x = -250
if self.pos.x < -250:
self.pos.x = 250
self.view.update(self)
class ruimteschip_view(object):
def __init__(self,owner):
self.owner = owner
self.frame = frame(pos = owner.pos,axis = owner.axis, velocity = owner.velocity)
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
More information about the Python-list
mailing list