-
Notifications
You must be signed in to change notification settings - Fork 0
/
levels.py
61 lines (48 loc) · 1.56 KB
/
levels.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from __future__ import division
import pymunk
from pymunk.vec2d import Vec2d
import pyglet
import things
from util import *
import random
random.seed()
class Level:
def camera_focus(self):
return Vec2d(0,0)#return self.game.controlling.body.position
def __init__(self,game):
self.gravity = 1
self.game = game
self.space = pymunk.Space()
self.batch = pyglet.graphics.Batch()
self.things = {}
self.create_player()
self.create_things()
def create_player(self):
#player = things.Circle(level=self, radius=10, verticies=5)
player = things.Asteroid(level=self, verticies=[(0,0),(5,0),(5,100),(0,100)])
self.game.controlling = player
def create_things(self):
things.Circle(level=self,position=(0,-100))
def pre_step(self):
for body in self.space.bodies:
body.reset_forces()
def step(self, dt):
mutual_gravitation(self.space.bodies, G=self.gravity)
substeps = 2
for substep in xrange(substeps):
self.space.step(dt/substeps)
class Fun(Level):
def create_things(self):
planet = things.Circle(level=self, radius=200, position=(0,-210))
for thing in xrange(20):
position = (random.randint(400,500), thing*10)
troid = things.Circle(level=self, radius=10, position=position, orbit=planet)
#troid.body.velocity = (-0,200)
class File(Level):
def __init__(self,game,file):
self.file = file
super(self, Level).__init__(game)
def create_things(self):
data = format_loader(self.file)
for body_tag in data:
things.Circle(level=self, *data[body_tag])