On Sep 29, 1:38 am, Devon Scott-Tunkin <[email protected]>
wrote:
> r['level1'] should already be a RectMapLayer class. I think there's a
> bug with the version of cocos you are using. Try using cocos 0.3 or
> the one in the cocograph folder for now (running your program from the
> cocograph folder or copying the cocos folder to your program
> directory). If you are using the latest svn try submitting a bug
> report.
>
> Cocograph does still have a few bugs too (I'm the author, btw, thanks
> for trying it out!), but I think this is a cocos related error,
> especially if the map loads fine in cocograph. I've been busy lately
> but I should have a new release of cocograph in a few weeks.
>
> On Sep 24, 6:45 pm, karan <[email protected]> wrote:
>
> > Hi, I'm using a tile editor called cocograph which creates a map and
> > produces the xml file. I made a map, of size 640 X 480 pixels and
> > loaded it using this:
>
> > import cocos
> > from cocos.director import *
> > from cocos import tiles
>
> > r = tiles.load('hell.xml')
>
> > scene = cocos.scene.Scene(r['level1'])
> > director.init()
> > director.run(scene)
>
> > However, it gave me the following error:
>
> > Traceback (most recent call last):
> > File "m.py", line 7, in <module>
> > r = tiles.load('hell.xml')
> > File "/home/karan/just/src/cocos/tiles.py", line 315, in load
> > obj = Resource(filename, paths)
> > File "/home/karan/just/src/cocos/tiles.py", line 200, in __init__
> > self.handle(root)
> > File "/home/karan/just/src/cocos/tiles.py", line 236, in handle
> > return self.factories[tag.tag](self, tag)
> > File "/home/karan/just/src/cocos/tiles.py", line 215, in
> > resource_factory
> > self.handle(child)
> > File "/home/karan/just/src/cocos/tiles.py", line 236, in handle
> > return self.factories[tag.tag](self, tag)
> > File "/home/karan/just/src/cocos/tiles.py", line 498, in
> > rectmap_factory
> > m = RectMapLayer(id, width, height, cells, origin)
> > File "/home/karan/just/src/cocos/tiles.py", line 673, in __init__
> > super(RectMapLayer, self).__init__()
> > File "/home/karan/just/src/cocos/tiles.py", line 586, in __init__
> > super(MapLayer, self).__init__()
> > File "/home/karan/just/src/cocos/tiles.py", line 547, in __init__
> > super(ScrollableLayer,self).__init__()
> > File "/home/karan/just/src/cocos/layer/base_layers.py", line 59, in
> > __init__
> > super( Layer, self ).__init__()
> > File "/home/karan/just/src/cocos/cocosnode.py", line 111, in
> > __init__
> > self.camera = Camera()
> > File "/home/karan/just/src/cocos/camera.py", line 55, in __init__
> > self.restore()
> > File "/home/karan/just/src/cocos/camera.py", line 75, in restore
> > width, height = director.get_window_size()
> > File "/home/karan/just/src/cocos/director.py", line 383, in
> > get_window_size
> > return ( self._window_original_width,
> > self._window_original_height)
> > AttributeError: 'Director' object has no attribute
> > '_window_original_width'
>
> > What could be causing the problem ? Is it necessary to create a
> > RectMapLayer class?
Ok, I tried the following codes, and it still gave errors. I replaced
my copy of cocos with the cocograph one. Could you let me know where
I'm going wrong?
Code 1:
import cocos
from cocos.director import *
from cocos import tiles
class hello(cocos.tiles.RectMapLayer):
def __init__(self):
super(hello, self).__init__()
r = tiles.load('hell.xml')
r['level1'] = hello()
scene = cocos.scene.Scene(r['level1'])
director.init()
director.run(scene)
Error:
Traceback (most recent call last):
File "test.py", line 10, in <module>
r = tiles.load('hell.xml')
File "/home/karan/just/src/cocos/tiles.py", line 363, in load
obj = Resource(filename)
File "/home/karan/just/src/cocos/tiles.py", line 254, in __init__
self.handle(root)
File "/home/karan/just/src/cocos/tiles.py", line 286, in handle
return self.factories[tag.tag](self, tag)
File "/home/karan/just/src/cocos/tiles.py", line 266, in
resource_factory
self.handle(child)
File "/home/karan/just/src/cocos/tiles.py", line 286, in handle
return self.factories[tag.tag](self, tag)
File "/home/karan/just/src/cocos/tiles.py", line 545, in
rectmap_factory
m = RectMapLayer(id, width, height, cells, origin, properties)
File "/home/karan/just/src/cocos/tiles.py", line 842, in __init__
MapLayer.__init__(self, properties)
File "/home/karan/just/src/cocos/tiles.py", line 640, in __init__
super(MapLayer, self).__init__()
File "/home/karan/just/src/cocos/tiles.py", line 595, in __init__
super(ScrollableLayer,self).__init__()
File "/home/karan/just/src/cocos/layer/base_layers.py", line 59, in
__init__
super( Layer, self ).__init__()
File "/home/karan/just/src/cocos/cocosnode.py", line 111, in
__init__
self.camera = Camera()
File "/home/karan/just/src/cocos/camera.py", line 55, in __init__
self.restore()
File "/home/karan/just/src/cocos/camera.py", line 75, in restore
width, height = director.get_window_size()
File "/home/karan/just/src/cocos/director.py", line 392, in
get_window_size
return ( self._window_original_width,
self._window_original_height)
AttributeError: 'Director' object has no attribute
'_window_original_width'
Code 2:
File Edit Options Buffers Tools Python
Help
import cocos
from cocos.director import *
import pyglet
from pyglet.window import key
from cocos import tiles
director.init(width = 640, height = 480, do_not_scale = True)
class sp(cocos.tiles.RectMapLayer):
def __init__(self):
super(sp, self).__init__(22, 2, 222, 255)
test_layer = tiles.load('hell.xml')['level1']
self.add(test_layer)
scene = cocos.scene.Scene(sp())
director.run(scene)
Error:
Traceback (most recent call last):
File "m.py", line 18, in <module>
scene = cocos.scene.Scene(sp())
File "m.py", line 12, in __init__
super(sp, self).__init__(22, 2, 222, 255)
File "/home/karan/just/src/cocos/tiles.py", line 841, in __init__
RectMap.__init__(self, id, tw, th, cells, origin, properties)
File "/home/karan/just/src/cocos/tiles.py", line 771, in __init__
self.px_width = len(cells) * tw
TypeError: object of type 'int' has no len()
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---