projects
/
tabakrolletjie.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
477037c
)
Tweak mould rendering logic to have sane realtionship between image position and...
author
Neil
<neil@dip.sun.ac.za>
Tue, 6 Sep 2016 20:26:57 +0000
(22:26 +0200)
committer
Neil
<neil@dip.sun.ac.za>
Tue, 6 Sep 2016 20:30:56 +0000
(22:30 +0200)
tabakrolletjie/enemies.py
patch
|
blob
|
history
diff --git
a/tabakrolletjie/enemies.py
b/tabakrolletjie/enemies.py
index 7b26fed214ebb600a5366aa4d40c85b1eb6edcee..f668f1afe0f50fbf19a6655fd7a2bf3754af6816 100644
(file)
--- a/
tabakrolletjie/enemies.py
+++ b/
tabakrolletjie/enemies.py
@@
-31,6
+31,13
@@
class Mould(pymunk.Body):
self._age = 0
self._img = None
self._age = 0
self._img = None
+ def pygame_pos(self, surface):
+ """Convert to pygame coordinates and offset position so
+ our position is the centre of the image."""
+ # The odd sign combination is because of the pymunk / pygame
+ # transform, but we do it this way to exploit Vec2d math magic
+ return pymunk.pygame_util.to_pygame(self.position + (-16, 16), surface)
+
def get_image(self):
if not self._img:
name = random.choice(
def get_image(self):
if not self._img:
name = random.choice(
@@
-88,11
+95,13
@@
class Mould(pymunk.Body):
class Boyd(object):
def __init__(self, gamestate, space):
class Boyd(object):
def __init__(self, gamestate, space):
- seed = Mould(gamestate, space, (
400, 40
0))
+ seed = Mould(gamestate, space, (
350, 35
0))
self._moulds = [seed]
self._image = pygame.surface.Surface(SCREEN_SIZE)
self._image.convert_alpha(pygame.display.get_surface())
self._image.fill((0, 0, 0, 0))
self._moulds = [seed]
self._image = pygame.surface.Surface(SCREEN_SIZE)
self._image.convert_alpha(pygame.display.get_surface())
self._image.fill((0, 0, 0, 0))
+ self._image.blit(seed.get_image(),
+ seed.pygame_pos(self._image), None, pgl.BLEND_RGBA_ADD)
def tick(self, gamestate, space):
redraw = False
def tick(self, gamestate, space):
redraw = False
@@
-102,9
+111,8
@@
class Boyd(object):
if redraw:
self._image.fill((0, 0, 0, 0))
for mould in self._moulds:
if redraw:
self._image.fill((0, 0, 0, 0))
for mould in self._moulds:
- pos = pymunk.pygame_util.to_pygame(mould.position, self._image)
- self._image.blit(mould.get_image(), pos, None,
- pgl.BLEND_RGBA_ADD)
+ self._image.blit(mould.get_image(),
+ mould.pygame_pos(self._image), None, pgl.BLEND_RGBA_ADD)
def render(self, surface):
"""Draw ourselves"""
def render(self, surface):
"""Draw ourselves"""