Finally uploaded some new stuff.Two more 'main' files.
One has the game running inside a basic wxPython window.
Another extends the AUI Docking Window Manager Demo as can be seen in the photo here.
A Cute Blocks World for AI Experimentation

Definitely, this paging stuff is getting boring.
Yes, yes. The back end is getting there.
Well, the slow part is right. Steady is coming, eventually.
Wow, I've got a full head of steam going now!
When it came time to write classes for all of these new items in the catalog, I thought 'There has got to be a better way!'
This is a lot of fun but it's also a lot of work. If it weren't for Python and pyglet, I'd probably have thrown in the towel by now.
That was pretty simple to fix. I only had to upgrade the culling and the camera code. Other stuff like mouse picking works through OpenGL via unproject so no changes there. Sweet!
It occurred to me that editing on a 1:1 scale would be impractical. So I inserted glScale(.5, .5, .5) into the pipeline as a test.
After deep meditation, I decided that the Selector is a Robo, meaning a Character type class.
The picture to the right here shows a rendering bug I can't seem to quite figure out. Which is odd since all of this code is really simple!
Python and pyglet makes for wicked fast progress!
I found out about the preview release of Google App Engine while browsing Google News last night.
I wrote a class called TreasureSpreader yesterday.
Well, this is all the work I care to spend on a cute robot icon.The global is necessary because the actual class object doesn't get created until it's instantiated. If you try it inside the class definition you get this:
WaterBlock_singleton = None
class WaterBlock(Block):
def __new__(cls, *args, **kargs):
global WaterBlock_singleton
if not WaterBlock_singleton:
obj = object.__new__(cls)
WaterBlock_singleton = obj
obj.__init__(*args, **kargs)
return WaterBlock_singleton
def __init__(self):
super(WaterBlock, self).__init__()
self.vu = BlockVu(self, 'Water Block.png')
UnboundLocalError: local variable 'WaterBlock_singleton' referenced before assignment
WaterBlock_singleton = None
class WaterBlock(Block):
#MetaClass
class __metaclass__(type):
def __call__(cls, *args, **kwargs):
return cls.__new__(cls, *args, **kwargs)
#Class
def __new__(cls, *args, **kargs):
global WaterBlock_singleton
if not WaterBlock_singleton:
obj = object.__new__(cls)
WaterBlock_singleton = obj
obj.__init__(*args, **kargs)
return WaterBlock_singleton
def __init__(self):
super(WaterBlock, self).__init__()
self.vu = BlockVu(self, 'Water Block.png')
PyWeek 6 is over. It's like Christmas came and went and now I have this deflated feeling. :(
It's starting to look like 'Did Not Finish'. :(
After struggling with how to implement some sort of user interface, I finally decided that all of the interaction could occur through Bubbles.

Look, It's RoboBoy and RoboCatGirl!
This is only my fourth week programming in Python, and second week of learning Pyglet.
RoboCute is my entry in the PyWeek 6 competition.