From 7d93afd75937f8893039169a1d4a106cf178617d Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20Mart=C3=ADnez=20Mart=C3=AD?= Date: Wed, 11 Jun 2008 22:32:42 +0200 Subject: [PATCH] Dragones que se mueven y escoltan una zona --- qwesprites.py | 16 ++++++++++++++++ stage.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/qwesprites.py b/qwesprites.py index b3faec8..69af83c 100644 --- a/qwesprites.py +++ b/qwesprites.py @@ -356,6 +356,7 @@ class qweSprite(pygame.sprite.Sprite): or (self.checkcell(stage,self.MARGIN_RIGHT-4,self.MARGIN_BOTTOM)!=' ' and self.checkcell(stage,0,self.MARGIN_BOTTOM)!=' ') ): + self.dx/=1+self.FRICTION_FLOOR[0]*ms/1000.0 if self.dy>0: if self.Life<900: self.Life-=self.LifeCollisionCost @@ -370,6 +371,8 @@ class qweSprite(pygame.sprite.Sprite): self.in_ground=True else: # Gravedad + if self.checkcell(stage,self.MARGIN_LEFT+4,self.MARGIN_BOTTOM)!=' ': self.dx+=1 + if self.checkcell(stage,self.MARGIN_RIGHT-4,self.MARGIN_BOTTOM)!=' ': self.dx-=1 self.dy+=self.GRAVITY if self.Life>self.MaxLife*1.5: self.Life=self.MaxLife*1.5 @@ -517,6 +520,7 @@ class Dragon(qweSprite): MAX_ACCUMMS=500 MAX_ACCUMDIST=100 BOUNCE=-.1 + direction=1 def __init__(self, stage): @@ -558,7 +562,19 @@ class Dragon(qweSprite): self.estado=0 return self.image + def tickms(self, ms, stage): + if self.dx<-10: self.direction=-1 + if self.dx>+10: self.direction=+1 + + if self.checkcell(stage,self.MARGIN_RIGHT,0)!=' ': self.direction=-1 + if self.checkcell(stage,self.MARGIN_LEFT,0)!=' ': self.direction=+1 + if self.checkcell(stage,self.MARGIN_RIGHT,self.MARGIN_BOTTOM)==' ': self.direction=-1 + if self.checkcell(stage,self.MARGIN_LEFT,self.MARGIN_BOTTOM)==' ': self.direction=+1 + v=qweSprite.tickms(self, ms, stage) + self.dx+=self.direction + + return v class LanzaBolas(qweSprite): image_flip=None diff --git a/stage.py b/stage.py index 690c071..17add88 100644 --- a/stage.py +++ b/stage.py @@ -106,7 +106,7 @@ class Stage: if sprite.FSOLID and sprite.rect.colliderect(testrect): put_in_place=False sprite.ShowLife=sprite.Life - sprite.Life-=20 + sprite.Life-=40 if put_in_place: self.setCh(x,y,' ') @@ -120,7 +120,7 @@ class Stage: def fulldraw(self,screen,msec): self.frame+=1 self.check_stage_ms+=msec - if self.check_stage_ms>500: + if self.check_stage_ms>200: self.check_stage_ms=0 self.do_stageChecks() for rect in self.rect_changed: -- 2.11.4.GIT