Class cocos.layer.scrolling.ScrollingManager

    cocosnode.CocosNode --+    
                          |    
scene.EventHandlerMixin --+    
                          |    
          base_layers.Layer --+
                              |
                             ScrollingManager
Known Subclasses:
tiles.ScrollingManager

Manages scrolling of Layers in a Cocos Scene.

Each ScrollableLayer that is added to this manager (via standard list methods) may have pixel dimensions .px_width and .px_height. Tile module MapLayers have these attribtues. The manager will limit scrolling to stay within the pixel boundary of the most limiting layer.

If a layer has no dimensions it will scroll freely and without bound.

The manager is initialised with the viewport (usually a Window) which has the pixel dimensions .width and .height which are used during focusing.

A ScrollingManager knows how to convert pixel coordinates from its own pixel space to the screen space.

Methods

  __init__(self, viewport=None, do_not_scale=None)
  on_enter(self)
Called every time just before the node enters the stage.
  update_view_size(self)
  on_cocos_resize(self, usable_width, usable_height)
  refresh_focus(self)
  set_scale(self, scale)
CocosNode instance add(self, child, z=0, name=None)
Add the child and then update the manager's focus / viewport.
  pixel_from_screen(self, x, y)
Look up the Layer-space pixel matching the screen-space pixel.
  pixel_to_screen(self, x, y)
Look up the screen-space pixel matching the Layer-space pixel.
  set_focus(self, fx, fy, force=False)
Determine the viewport based on a desired focus pixel in the Layer space (fx, fy) and honoring any bounding restrictions of child layers.
  force_focus(self, fx, fy)
Force the manager to focus on a point, regardless of any managed layer visible boundaries.
  set_state(self)
  unset_state(self)
  visit(self)
This function visits it's children in a recursive way.
  __contains__(self, child) (Inherited from cocos.cocosnode.CocosNode)
  are_actions_running(self)
Determine whether any actions are running.
(Inherited from cocos.cocosnode.CocosNode)
Action instance do(self, action, target=None)
Executes an action.
(Inherited from cocos.cocosnode.CocosNode)
  draw(self, *args, **kwargs)
This is the function you will have to override if you want your subclassed to draw something on screen.
(Inherited from cocos.cocosnode.CocosNode)
CocosNode get(self, name)
Gets a child given its name
(Inherited from cocos.cocosnode.CocosNode)
CocosNode or None get_ancestor(self, klass)
Walks the nodes tree upwards until it finds a node of the class klass or returns None
(Inherited from cocos.cocosnode.CocosNode)
list of CocosNode get_children(self)
Return a list with the node's childs, order is back to front
(Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 get_local_inverse(self)
returns an euclid.Matrix3 with the local inverse transformation matrix
(Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 get_local_transform(self)
returns an euclid.Matrix3 with the local transformation matrix
(Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 get_world_inverse(self)
returns an euclid.Matrix3 with the world inverse transformation matrix
(Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 get_world_transform(self)
returns an euclid.Matrix3 with the world transformation matrix
(Inherited from cocos.cocosnode.CocosNode)
  kill(self)
Remove this object from its parent, and thus most likely from everything.
(Inherited from cocos.cocosnode.CocosNode)
  on_exit(self)
Called every time just before the node leaves the stage
(Inherited from cocos.layer.base_layers.Layer)
  pause(self)
Suspends the execution of actions.
(Inherited from cocos.cocosnode.CocosNode)
  pause_scheduler(self)
Time will stop passing for this node: scheduled callbacks will not be called, worker actions will not be called
(Inherited from cocos.cocosnode.CocosNode)
euclid.Vector2 point_to_local(self, p)
returns an euclid.Vector2 converted to local space
(Inherited from cocos.cocosnode.CocosNode)
euclid.Vector2 point_to_world(self, p)
returns an euclid.Vector2 converted to world space
(Inherited from cocos.cocosnode.CocosNode)
  push_all_handlers(self)
registers itself to receive director.window events and propagates the call to childs that are layers.
(Inherited from cocos.layer.base_layers.Layer)
  remove(self, obj)
Removes a child given its name or object
(Inherited from cocos.cocosnode.CocosNode)
  remove_action(self, action)
Removes an action from the node actions container, potentially calling action.stop()
(Inherited from cocos.cocosnode.CocosNode)
  remove_all_handlers(self)
de-registers itself to receive director.window events and propagates the call to childs that are layers.
(Inherited from cocos.layer.base_layers.Layer)
  resume(self)
Resumes the execution of actions.
(Inherited from cocos.cocosnode.CocosNode)
  resume_scheduler(self)
Time will continue/start passing for this node and callbacks will be called, worker actions will be called
(Inherited from cocos.cocosnode.CocosNode)
  schedule(self, callback, *args, **kwargs)
Schedule a function to be called every frame.
(Inherited from cocos.cocosnode.CocosNode)
  schedule_interval(self, callback, interval, *args, **kwargs)
Schedule a function to be called every interval seconds.
(Inherited from cocos.cocosnode.CocosNode)
  stop(self)
Removes all actions from the running action list
(Inherited from cocos.cocosnode.CocosNode)
  transform(self)
Apply ModelView transformations
(Inherited from cocos.cocosnode.CocosNode)
  unschedule(self, callback)
Remove a function from the schedule.
(Inherited from cocos.cocosnode.CocosNode)
list walk(self, callback, collect=None)
Executes callback on all the subtree starting at self.
(Inherited from cocos.cocosnode.CocosNode)

Properties

  scale
(int,int) anchor
Anchor point of the object.
(Inherited from cocos.cocosnode.CocosNode)
(int,int) anchor_x
Anchor x value for transformations and adding children
(Inherited from cocos.cocosnode.CocosNode)
(int,int) anchor_y
Anchor y value for transformations and adding children
(Inherited from cocos.cocosnode.CocosNode)
object parent
The parent of this object.
(Inherited from cocos.cocosnode.CocosNode)
(int, int) position
The (x, y) coordinates of the object.
(Inherited from cocos.cocosnode.CocosNode)
  rotation (Inherited from cocos.cocosnode.CocosNode)
(int,int) transform_anchor
Transformation anchor point.
(Inherited from cocos.cocosnode.CocosNode)
  x
The x coordinate of the object
(Inherited from cocos.cocosnode.CocosNode)
  y
The y coordinate of the object
(Inherited from cocos.cocosnode.CocosNode)

Instance Variables

  actions
list of Action objects that are running
(Inherited from cocos.cocosnode.CocosNode)
  camera
eye, center and up vector for the Camera.
(Inherited from cocos.cocosnode.CocosNode)
  children
list of (int, child-reference) where int is the z-order, sorted by ascending z (back to front order)
(Inherited from cocos.cocosnode.CocosNode)
  children_names
dictionary that maps children names with children references
(Inherited from cocos.cocosnode.CocosNode)
  grid
the grid object for the grid actions.
(Inherited from cocos.cocosnode.CocosNode)
  is_running
whether of not the object is running
(Inherited from cocos.cocosnode.CocosNode)
  scheduled_calls
list of scheduled callbacks
(Inherited from cocos.cocosnode.CocosNode)
  scheduled_interval_calls
list of scheduled interval callbacks
(Inherited from cocos.cocosnode.CocosNode)
  skip_frame
whether or not the next frame will be skipped
(Inherited from cocos.cocosnode.CocosNode)
  to_remove
list of Action objects to be removed
(Inherited from cocos.cocosnode.CocosNode)
  transform_anchor_x
offset from (x,0) from where rotation and scale will be applied.
(Inherited from cocos.cocosnode.CocosNode)
  transform_anchor_y
offset from (0,y) from where rotation and scale will be applied.
(Inherited from cocos.cocosnode.CocosNode)
  visible
whether of not the object is visible.
(Inherited from cocos.cocosnode.CocosNode)

Class Variables

  is_event_handler = False
if True the layer will listen to director.window events Default: False if true, the event handlers of this layer will be registered.
(Inherited from cocos.layer.base_layers.Layer)

Method Details

__init__

(Constructor) __init__(self, viewport=None, do_not_scale=None)
Overrides:
base_layers.Layer.__init__

on_enter

on_enter(self)

Called every time just before the node enters the stage.

scheduled calls and worker actions begins or continues to perform

Good point to do .push_handlers if you have custom ones Rule: a handler pushed there is near certain to require a .pop_handlers in the .on_exit method (else it will be called even after removed from the active scene, or, if going on stage again will be called multiple times for each event ocurrence)

Overrides:
base_layers.Layer.on_enter

add

add(self, child, z=0, name=None)
Add the child and then update the manager's focus / viewport.
Returns:
CocosNode instance: self
Overrides:
cocosnode.CocosNode.add

pixel_from_screen

pixel_from_screen(self, x, y)

Look up the Layer-space pixel matching the screen-space pixel.

Account for viewport, layer and screen transformations.

pixel_to_screen

pixel_to_screen(self, x, y)

Look up the screen-space pixel matching the Layer-space pixel.

Account for viewport, layer and screen transformations.

set_focus

set_focus(self, fx, fy, force=False)

Determine the viewport based on a desired focus pixel in the Layer space (fx, fy) and honoring any bounding restrictions of child layers.

The focus will always be shifted to ensure no child layers display out-of-bounds data, as defined by their dimensions px_width and px_height.

visit

visit(self)

This function visits it's children in a recursive way.

It will first visit the children that that have a z-order value less than 0.

Then it will call the draw method to draw itself.

And finally it will visit the rest of the children (the ones with a z-value bigger or equal than 0)

Before visiting any children it will call the transform method to apply any possible transformation.

Overrides:
cocosnode.CocosNode.visit

Property Details

scale