{"node_id": "f3a7e91f-2f95-11f1-b18c-e86a64d24d78", "revisions": [{"id": "f3a8bf9a-2f95-11f1-85f4-e86a64d24d78", "node_id": "f3a7e91f-2f95-11f1-b18c-e86a64d24d78", "user_id": "edc3f576-2f95-11f1-900f-e86a64d24d78", "author": "foxhop", "data": "PySFML AnimatedSprite class supplies Next method to adjust frames\r\n===================================================================\r\n\r\n.. code-block:: python\r\n\r\n from PySFML import sf\r\n\r\n class AnimatedSprite( sf.Sprite ):\r\n     def __init__( self, image, columns=1, rows=1, sequence=None, columnwidth=None, rowheight=None ):\r\n         super( AnimatedSprite, self ).__init__( image )\r\n\r\n         totalwidth, totalheight = self.GetSize() \r\n\r\n         if columnwidth: self.columnwidth = columnwidth \r\n         else: self.columnwidth = int( totalwidth / columns )\r\n\r\n         if rowheight: self.rowheight = rowheight\r\n         else: self.rowheight = int( totalheight / rows )\r\n\r\n         if sequence:\r\n             self.sequence = sequence\r\n         else:\r\n             self.sequence = [ number for number in range( 1, ( columns * rows ) + 1 ) ]\r\n \r\n         # create a frames list of column and row tuples\r\n         self.frames = [ (x,y) for y in range( 1, rows + 1 ) for x in range( 1, columns + 1 ) ]\r\n \r\n         self.current = self.tick = self.complete = 0\r\n\r\n         # set the first frame \r\n         self.Next( self.tick )\r\n\r\n     def Next( self, tickrate = 12 ):\r\n         \"\"\"\r\n         Pass an optional tickrate.\r\n         If tick is greater or equal to tickrate:\r\n         Move the Sub Rectangle or view to the Next position.\r\n         Set complete to True when sequence finishes.\r\n         \"\"\"\r\n         self.tick += 1\r\n\r\n         if self.tick >= tickrate:\r\n\r\n             self.tick = 0\r\n             column, row = self.frames[ self.sequence[ self.current ] - 1  ]\r\n \r\n             subrect = sf.IntRect( \r\n                 self.columnwidth * ( column - 1 ), \r\n                 self.rowheight * ( row - 1 ), \r\n                 self.columnwidth * column,\r\n                 self.rowheight * row\r\n             ) \r\n\r\n             self.SetSubRect( subrect ) \r\n\r\n             self.current += 1\r\n             if self.current >= len( self.sequence ):\r\n                 self.complete = True\r\n                 self.current = 0\r\n\r\nSome example sprite timeline images\r\n=========================================\r\n\r\n\r\n\r\n", "source_format": "rst", "revision_number": 3, "created": 1349713745000}, {"id": "f3a8b56d-2f95-11f1-8ae6-e86a64d24d78", "node_id": "f3a7e91f-2f95-11f1-b18c-e86a64d24d78", "user_id": "edc3f576-2f95-11f1-900f-e86a64d24d78", "author": "foxhop", "data": "PySFML AnimatedSprite class supplies Next method to adjust frames\r\n===================================================================\r\n\r\n.. code-block:: python\r\n\r\n from PySFML import sf\r\n\r\n class AnimatedSprite( sf.Sprite ):\r\n     def __init__( self, image, columns=1, rows=1, sequence=None, columnwidth=None, rowheight=None ):\r\n         super( AnimatedSprite, self ).__init__( image )\r\n\r\n         totalwidth, totalheight = self.GetSize() \r\n\r\n         if columnwidth: self.columnwidth = columnwidth \r\n         else: self.columnwidth = int( totalwidth / columns )\r\n\r\n         if rowheight: self.rowheight = rowheight\r\n         else: self.rowheight = int( totalheight / rows )\r\n\r\n         if sequence:\r\n             self.sequence = sequence\r\n         else:\r\n             self.sequence = [ number for number in range( 1, ( columns * rows ) + 1 ) ]\r\n \r\n         # create a frames list of column and row tuples\r\n         self.frames = [ (x,y) for y in range( 1, rows + 1 ) for x in range( 1, columns + 1 ) ]\r\n \r\n         self.current = self.tick = self.complete = 0\r\n\r\n         # set the first frame \r\n         self.Next( self.tick )\r\n\r\n     def Next( self, tickrate = 12 ):\r\n         \"\"\"\r\n         Pass an optional tickrate.\r\n         If tick is greater or equal to tickrate:\r\n         Move the Sub Rectangle or view to the Next position.\r\n         Set complete to True when sequence finishes.\r\n         \"\"\"\r\n         self.tick += 1\r\n\r\n         if self.tick >= tickrate:\r\n\r\n             self.tick = 0\r\n             column, row = self.frames[ self.sequence[ self.current ] - 1  ]\r\n \r\n             subrect = sf.IntRect( \r\n                 self.columnwidth * ( column - 1 ), \r\n                 self.rowheight * ( row - 1 ), \r\n                 self.columnwidth * column,\r\n                 self.rowheight * row\r\n             ) \r\n\r\n             self.SetSubRect( subrect ) \r\n\r\n             self.current += 1\r\n             if self.current >= len( self.sequence ):\r\n                 self.complete = True\r\n                 self.current = 0\r\n\r\nSome example sprite timeline images:\r\n\r\n", "source_format": "rst", "revision_number": 2, "created": 1316029180000}, {"id": "f3a8aacc-2f95-11f1-baef-e86a64d24d78", "node_id": "f3a7e91f-2f95-11f1-b18c-e86a64d24d78", "user_id": "edc3f576-2f95-11f1-900f-e86a64d24d78", "author": "foxhop", "data": ".. code-block:: python\r\n\r\n from PySFML import sf\r\n\r\n class AnimatedSprite( sf.Sprite ):\r\n     def __init__( self, image, columns=1, rows=1, sequence=None, columnwidth=None, rowheight=None ):\r\n         super( AnimatedSprite, self ).__init__( image )\r\n\r\n         totalwidth, totalheight = self.GetSize() \r\n\r\n         if columnwidth: self.columnwidth = columnwidth \r\n         else: self.columnwidth = int( totalwidth / columns )\r\n\r\n         if rowheight: self.rowheight = rowheight\r\n         else: self.rowheight = int( totalheight / rows )\r\n\r\n         if sequence:\r\n             self.sequence = sequence\r\n         else:\r\n             self.sequence = [ number for number in range( 1, ( columns * rows ) + 1 ) ]\r\n \r\n         # create a frames list of column and row tuples\r\n         self.frames = [ (x,y) for y in range( 1, rows + 1 ) for x in range( 1, columns + 1 ) ]\r\n \r\n         self.current = self.tick = self.complete = 0\r\n\r\n         # set the first frame \r\n         self.Next( self.tick )\r\n\r\n     def Next( self, tickrate = 12 ):\r\n         \"\"\"\r\n         Pass an optional tickrate.\r\n         If tick is greater or equal to tickrate:\r\n         Move the Sub Rectangle or view to the Next position.\r\n         Set complete to True when sequence finishes.\r\n         \"\"\"\r\n         self.tick += 1\r\n\r\n         if self.tick >= tickrate:\r\n\r\n             self.tick = 0\r\n             column, row = self.frames[ self.sequence[ self.current ] - 1  ]\r\n \r\n             subrect = sf.IntRect( \r\n                 self.columnwidth * ( column - 1 ), \r\n                 self.rowheight * ( row - 1 ), \r\n                 self.columnwidth * column,\r\n                 self.rowheight * row\r\n             ) \r\n\r\n             self.SetSubRect( subrect ) \r\n\r\n             self.current += 1\r\n             if self.current >= len( self.sequence ):\r\n                 self.complete = True\r\n                 self.current = 0\r\n", "source_format": "rst", "revision_number": 1, "created": 1316029020000}], "count": 3}