Exemplo n.º 1
0
class PhysicsWorld(object):

    def __init__(self):
        self.space = None

    def init(self):
        init_pymunk()
        self.space = Space()
        self.space.gravity = (0, -0.002)
        self.space.resize_static_hash()
        self.space.resize_active_hash()


    def add(self, item, position, static):
        item.body.position = position
        if static:
            self.space.add_static(item.shape)
        else:
            self.space.add(item.body)
            self.space.add(item.shape)
            if item.rest_angle_spring:
                self.space.add(item.rest_angle_spring)


    def update(self, items):
        for item in items.itervalues():
            item.physics.update()

        self.space.step(1)
Exemplo n.º 2
0
class World(object):

    def __init__(self):
        self.items = []
        self.words = []
        self.springs = []
        init_pymunk()
        self.space = Space()
        self.space.resize_static_hash()
        self.space.resize_active_hash()

    def add_item(self, item):
##        self.items.append(item)
        self.space.add(item.shape)
        self.space.add(item.body)

    def add_spring(self, spring):
        self.springs.append(spring)
        self.space.add(spring)


    def add_word(self, word):
        self.words.append(word)

    def update(self):
        self.space.step(1.0)
Exemplo n.º 3
0
class World(object):
    def __init__(self):
        self.items = []
        self.words = []
        self.springs = []
        init_pymunk()
        self.space = Space()
        self.space.resize_static_hash()
        self.space.resize_active_hash()

    def add_item(self, item):
        ##        self.items.append(item)
        self.space.add(item.shape)
        self.space.add(item.body)

    def add_spring(self, spring):
        self.springs.append(spring)
        self.space.add(spring)

    def add_word(self, word):
        self.words.append(word)

    def update(self):
        self.space.step(1.0)
Exemplo n.º 4
0
class World(object):

    def __init__(self):
        self.items = []
        init_pymunk()
        self.space = Space()
        self.space.gravity = (0, -0.5)
        self.space.resize_static_hash()
        self.space.resize_active_hash()
        self.leaves = []
        self.end_game = False
        

    def add_item(self, item):
        if isinstance(item, Bough):
            self.leaves.append(item)
        self.items.append(item)
        item.create_body()
        item.add_to_space(self.space)

    def remove_item(self, item):
        self.items.remove(item)
        item.remove_from_space(self.space)


    def update(self):
        self.space.step(0.5)
        for item in self.items:
            item.update()

    def remove_collided(self):
        for item in self.items:
            if item.status == "Collided":
                self.remove_item(item)
            
    def tick(self):
        max_limit = len(self.leaves) - 1
        if len(self.leaves) == 0:
                max_limit = 0 
##                print "End Level"
                self.end_game = True

        else:
##            print max_limit
            randno = random.randint(0, max_limit)
##            print randno
            leaf = self.leaves.pop(randno)
##            print leaf
            leaf.remove_from_tree(self.space)

    def add_cherry(self, x, y):
        cherry = Cherry(x, y)
        self.add_item(cherry)

    def add_owange(self, x, y):
        owange = Owange(x, y)
        self.add_item(owange)



    def add_collision_handler( self, 
                               col_typ1, 
                               col_typ2, 
                               begin=None, 
                               pre_solve=None,
                               post_solve=None, 
                               separate=None, 
                               **kwargs
        ):
        self.space.add_collision_handler(
            col_typ1, col_typ2,
            begin, pre_solve,
            post_solve, separate,
            **kwargs)
Exemplo n.º 5
0
class World(object):
    def __init__(self):
        self.items = []
        init_pymunk()
        self.space = Space()
        self.space.gravity = (0, -0.5)
        self.space.resize_static_hash()
        self.space.resize_active_hash()
        self.leaves = []
        self.end_game = False

    def add_item(self, item):
        if isinstance(item, Bough):
            self.leaves.append(item)
        self.items.append(item)
        item.create_body()
        item.add_to_space(self.space)

    def remove_item(self, item):
        self.items.remove(item)
        item.remove_from_space(self.space)

    def update(self):
        self.space.step(0.5)
        for item in self.items:
            item.update()

    def remove_collided(self):
        for item in self.items:
            if item.status == "Collided":
                self.remove_item(item)

    def tick(self):
        max_limit = len(self.leaves) - 1
        if len(self.leaves) == 0:
            max_limit = 0
            ##                print "End Level"
            self.end_game = True

        else:
            ##            print max_limit
            randno = random.randint(0, max_limit)
            ##            print randno
            leaf = self.leaves.pop(randno)
            ##            print leaf
            leaf.remove_from_tree(self.space)

    def add_cherry(self, x, y):
        cherry = Cherry(x, y)
        self.add_item(cherry)

    def add_owange(self, x, y):
        owange = Owange(x, y)
        self.add_item(owange)

    def add_collision_handler(self,
                              col_typ1,
                              col_typ2,
                              begin=None,
                              pre_solve=None,
                              post_solve=None,
                              separate=None,
                              **kwargs):
        self.space.add_collision_handler(col_typ1, col_typ2, begin, pre_solve,
                                         post_solve, separate, **kwargs)