[pypy-svn] r29672 - in pypy/dist/pypy/translator/js: demo/jsdemo modules tools

ericvrp at codespeak.net ericvrp at codespeak.net
Thu Jul 6 13:48:05 CEST 2006


Author: ericvrp
Date: Thu Jul  6 13:47:51 2006
New Revision: 29672

Modified:
   pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
   pypy/dist/pypy/translator/js/modules/_dom.py
   pypy/dist/pypy/translator/js/tools/start_bnb.py
Log:
Use _dom in favor of dom module.
Half-baked version for reseting the sprite manager in between levels.


Modified: pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
==============================================================================
--- pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py	(original)
+++ pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py	Thu Jul  6 13:47:51 2006
@@ -263,6 +263,14 @@
         #        len_before, inline_frames, len(messages)))
         to_append = []
         sprite_manager = self.get_sprite_manager()
+
+        sm_restart = 0
+        #if inline_frames:
+        #    sm_restart = 1
+        #    sprite_manager.__init__()
+        #    to_append.append({'type':'begin_clean_sprites'})
+        #    log("server sm_restart")
+
         
 ##        def get_full_frame(next):
 ##            new_sprite, s_num = sprite_manager.get_sprite(*next)
@@ -293,6 +301,6 @@
         messages += to_append
         #messages.append(to_append[0])
         #log(len(messages))
-        return dict(messages=messages, add_data=[{'n':sm.count()}])
+        return dict(messages=messages, add_data=[{'n':sm.count(), 'sm_restart':sm_restart}])
 
 BnbRootInstance = BnbRoot()

Modified: pypy/dist/pypy/translator/js/modules/_dom.py
==============================================================================
--- pypy/dist/pypy/translator/js/modules/_dom.py	(original)
+++ pypy/dist/pypy/translator/js/modules/_dom.py	Thu Jul  6 13:47:51 2006
@@ -46,6 +46,7 @@
         'createElement' : MethodDesc(["aa"], Node()),
         'setAttribute' : MethodDesc(["aa", "bb"], None),
         'appendChild' : MethodDesc([Node()], None),
+        'removeChild' : MethodDesc([Node()], None),
     }
 
 class Document(Node):

Modified: pypy/dist/pypy/translator/js/tools/start_bnb.py
==============================================================================
--- pypy/dist/pypy/translator/js/tools/start_bnb.py	(original)
+++ pypy/dist/pypy/translator/js/tools/start_bnb.py	Thu Jul  6 13:47:51 2006
@@ -12,10 +12,9 @@
 conftest.option.browser = "default"
 
 from pypy.translator.js.test.runtest import compile_function
-from pypy.translator.js.modules.dom import Node, get_document, setTimeout, alert
+from pypy.translator.js.modules._dom import get_document
 from pypy.translator.js.modules.xmlhttp import XMLHttpRequest
 from pypy.translator.js.modules.mochikit import log, logWarning, createLoggingPane
-from pypy.translator.js.modules.dom import get_document, set_on_keydown, set_on_keyup
 from pypy.translator.js.modules.bltns import date
 from pypy.translator.js.demo.jsdemo.bnb import BnbRootInstance
 
@@ -32,13 +31,12 @@
     """ Class containing some statistics
     """
     def __init__(self):
-        self.starttime = 0
         self.n_received_inline_frames = 0
         self.n_rendered_inline_frames = 0
         self.n_rendered_dynamic_sprites = 0
         self.fps = 0
         self.starttime = 0.0
-        self.n_sprites = 0 #why is inline frame broken up?
+        self.n_sprites = 0
     
     def register_frame(self):
         self.n_rendered_inline_frames += 1
@@ -121,16 +119,29 @@
 
 sm = SpriteManager()
 
+def appendPlayfield(msg):
+    bgcolor = '#000000'
+    get_document().body.setAttribute('bgcolor', bgcolor)
+    div = get_document().createElement("div")
+    div.setAttribute("id", "playfield")
+    div.setAttribute('width', msg['width'])
+    div.setAttribute('height', msg['height'])
+    div.setAttribute('style', 'position:absolute; top:0px; left:0px')
+    get_document().body.appendChild(div)
+
+def appendPlayfieldXXX():
+    bgcolor = '#000000'
+    get_document().body.setAttribute('bgcolor', bgcolor)
+    div = get_document().createElement("div")
+    div.setAttribute("id", "playfield")
+    div.setAttribute('width', 500)
+    div.setAttribute('height', 250)
+    div.setAttribute('style', 'position:absolute; top:0px; left:0px')
+    get_document().body.appendChild(div)
+
 def process_message(msg):
     if msg['type'] == 'def_playfield':
-        bgcolor = '#000000'
-        get_document().body.setAttribute('bgcolor', bgcolor)
-        div = get_document().createElement("div")
-        div.setAttribute("id", "playfield")
-        div.setAttribute('width', msg['width'])
-        div.setAttribute('height', msg['height'])
-        div.setAttribute('style', 'position:absolute; top:0px; left:0px')
-        get_document().body.appendChild(div)
+        appendPlayfield(msg)
     elif msg['type'] == 'def_icon':
         sm.add_icon(msg['icon_code'], msg['filename'])
     elif msg['type'] == 'ns':
@@ -176,68 +187,78 @@
     #c = chr(int(key.keyCode)).lower()
     #c = int(key.keyCode)
     c = key.keyCode
-    if c == '48': #ord('0'):
+    if c == 48: #ord('0'):
         addPlayer(0)
-    elif c == '49': #ord('1'):  #bwah. should really work on being able to cast to int
+    elif c == 49: #ord('1'):  #bwah. should really work on being able to cast to int
         addPlayer(1)
-    elif c == '50': #ord('2'):
+    elif c == 50: #ord('2'):
         addPlayer(2)
-    elif c == '51': #ord('3'):
+    elif c == 51: #ord('3'):
         addPlayer(3)
-    elif c == '52': #ord('4'):
+    elif c == 52: #ord('4'):
         addPlayer(4)
-    elif c == '53': #ord('5'):
+    elif c == 53: #ord('5'):
         addPlayer(5)
-    elif c == '54': #ord('6'):
+    elif c == 54: #ord('6'):
         addPlayer(6)
-    elif c == '55': #ord('7'):
+    elif c == 55: #ord('7'):
         addPlayer(7)
-    elif c == '56': #ord('8'):
+    elif c == 56: #ord('8'):
         addPlayer(8)
-    elif c == '57': #ord('9'):
+    elif c == 57: #ord('9'):
         addPlayer(9)
-    elif c == '68': #ord('D'):  #right
+    elif c == 68: #ord('D'):  #right
         BnbRootInstance.key(player.id, 0, ignore_dispatcher)
         logKey('start right')
-    elif c == '83': #ord('S'):  #left
+    elif c == 83: #ord('S'):  #left
         BnbRootInstance.key(player.id, 1, ignore_dispatcher)
         logKey('start left')
-    elif c == '69': #ord('E'):  #up
+    elif c == 69: #ord('E'):  #up
         BnbRootInstance.key(player.id, 2, ignore_dispatcher)
         logKey('start up')
-    elif c == '88': #ord('X'):  #fire
+    elif c == 88: #ord('X'):  #fire
         BnbRootInstance.key(player.id, 3, ignore_dispatcher)
         logKey('start fire')
     else:
-        logWarning('unknown keydown: ' + c)
+        logWarning('unknown keydown: ' + str(c))
 
 
 def keyup(key):
     c = key.keyCode
-    if c == '48' or c == '49' or c == '50' or c == '51' or c == '52' or\
-       c == '53' or c == '54' or c == '55' or c == '56' or c == '57': #XXX c in (...) didn't work
+    if c == 48 or c == 49 or c == 50 or c == 51 or c == 52 or\
+       c == 53 or c == 54 or c == 55 or c == 56 or c == 57: #XXX c in (...) didn't work
         pass    #don't print warning
-    elif c == '68': #ord('D'):  #right
+    elif c == 68: #ord('D'):  #right
         BnbRootInstance.key(player.id, 4, ignore_dispatcher)
         logKey('stop right')
-    elif c == '83': #ord('S'):  #left
+    elif c == 83: #ord('S'):  #left
         BnbRootInstance.key(player.id, 5, ignore_dispatcher)
         logKey('stop left')
-    elif c == '69': #ord('E'):  #up
+    elif c == 69: #ord('E'):  #up
         BnbRootInstance.key(player.id, 6, ignore_dispatcher)
         logKey('stop up')
-    elif c == '88': #ord('X'):  #fire
+    elif c == 88: #ord('X'):  #fire
         BnbRootInstance.key(player.id, 7, ignore_dispatcher)
         logKey('stop fire')
     else:
-        logWarning('unknown keyup: ' + c)
+        logWarning('unknown keyup: ' + str(c))
 
 def ignore_dispatcher(msgs):
     pass
 
 def bnb_dispatcher(msgs):
     BnbRootInstance.get_message(bnb_dispatcher)
-    
+
+    #sm_restart = int(msgs['add_data'][0]['sm_restart'])
+    #if sm_restart == 123:
+    #    log("sm_restart")
+    #    stats.__init__()
+    #    sm.__init__()
+    #    sm.begin_clean_sprites()
+    #    playfield = get_document().getElementById("playfield")
+    #    get_document().body.removeChild(playfield)
+    #    appendPlayfieldXXX()
+
     count = int(msgs['add_data'][0]['n'])
     if count != player.prev_count + 1:
         logWarning("incorrect response order, expected " + str(player.prev_count+1) + ' got ' + str(count))
@@ -265,8 +286,8 @@
         createLoggingPane(True)
         log("keys: [0-9] to select player, [esdx] to walk around")
         BnbRootInstance.initialize_session(session_dispatcher)
-        set_on_keydown(keydown)
-        set_on_keyup(keyup)
+        get_document().onkeydown = keydown
+        get_document().onkeyup   = keyup
     
     from pypy.translator.js.demo.jsdemo.bnb import BnbRoot
     fn = compile_function(bnb, [], root = BnbRoot, run_browser = False)



More information about the Pypy-commit mailing list