Thank you Claudio, thank you so much..

This is exactly the help I was looking for.

I was doing it all wrong.

Very much appreciated :)


On Jul 6, 11:19 pm, claudio canepa <[email protected]> wrote:
> On Mon, Jul 6, 2009 at 2:22 PM, portaldev <[email protected]> wrote:
>
> > Hi,
> >  I am trying to move a sprite around the screen using the cursor
> > keys, my code is below (its very basic)
>
> > Is there a better way than using "self.sprite.stop()" to stop the
> > sprite moving?
>
> > I tried a few ways mentioned on this forum but I cannot get them to
> > work, such as:
>
> >   self.sprite.remove_action( self.action )
>
> > I am very new to python programming so any advice appreciated
>
> > Thanks.
>
> > #!/usr/bin/python
>
> > import sys
> > import os
> > import cocos
> > from cocos.actions import *
>
> > class CarScene(cocos.layer.ColorLayer):
>
> >        KEY_UP = 65362
> >        KEY_DOWN = 65364
> >        KEY_LEFT = 65361
> >        KEY_RIGHT = 65363
> >        KEY_LEFT_CTRL = 65507
>
> >        is_event_handler = True
>
> >        def __init__(self):
> >                # background color
> >                super( CarScene, self ).__init__(64,64,224,255)
>
> >                # show car
> >                self.sprite = cocos.sprite.Sprite('car.png')
> >                self.sprite.position = 320, 240
> >                self.add( self.sprite )
>
> >        def on_key_press (self, key, modifiers):
>
> >                if key == self.KEY_LEFT:
> >                        print( "move left" )
> >                        self.action = Repeat( MoveBy( (-1, 0), 0.01) )
>
> >                elif key == self.KEY_RIGHT:
> >                        print( "move right" )
> >                        self.action = Repeat( MoveBy( (+1, 0), 0.01) )
>
> >                elif key == self.KEY_UP:
> >                        print( "move up" )
> >                        self.action = Repeat( MoveBy( (0, +1), 0.01) )
>
> >                elif key == self.KEY_DOWN:
> >                        print( "move down" )
> >                        self.action = Repeat( MoveBy( (0, -1), 0.01) )
>
> >                elif key == self.KEY_LEFT_CTRL:
> >                        print( "start fire" )
>
> >                else:
> >                        print( "key_press = " + str(key) )
>
> >                self.sprite.do( self.action )
>
> >        def on_key_release (self, key, modifiers):
>
> >                if key == self.KEY_LEFT:
> >                        print( "stop moving left" )
>
> >                elif key == self.KEY_RIGHT:
> >                        print( "stop moving right" )
>
> >                elif key == self.KEY_UP:
> >                        print( "stop moving up" )
>
> >                elif key == self.KEY_DOWN:
> >                        print( "stop moving down" )
>
> >                elif key == self.KEY_LEFT_CTRL:
> >                        print( "stop fire" )
>
> >                else:
> >                        print( "key_press = " + str(key) )
>
> >                self.sprite.stop()
>
> > if __name__ == "__main__":
> >        cocos.director.director.init()
> >        cocos.director.director.run( cocos.scene.Scene( CarScene() ) )
>
>  I would use actions only for things with zero interaction, like decorative
> birds flying in the sky.
>
> For player ( control interaction, colision interaction), monsters ( IA
> controls, collision interactions ), my preference goes with having an
> .update(self,dt) method in each actor.
>
> The atachement shows something similar, albeit for brevity I left the update
> in the layer, not in the actor ( sorry for not posting directly, gmail will
> eat indentation in cut and paste).
>
> Take note that at the moment .remove_action(action) is broken.
>
> --
> Claudio
>
>  bad_move2.py
> 2KViewDownload
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cocos2d discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cocos-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to