[pypy-svn] r38787 - pypy/dist/pypy/translator/js/examples

fijal at codespeak.net fijal at codespeak.net
Wed Feb 14 10:40:06 CET 2007


Author: fijal
Date: Wed Feb 14 10:40:06 2007
New Revision: 38787

Modified:
   pypy/dist/pypy/translator/js/examples/start_bnb.py
Log:
Commit local changes to be able to move - minor tweaks, mostly
about changing genjs interface


Modified: pypy/dist/pypy/translator/js/examples/start_bnb.py
==============================================================================
--- pypy/dist/pypy/translator/js/examples/start_bnb.py	(original)
+++ pypy/dist/pypy/translator/js/examples/start_bnb.py	Wed Feb 14 10:40:06 2007
@@ -6,23 +6,17 @@
 
 import py
 
-from pypy.translator.js import conftest
-
-conftest.option.tg = True
-conftest.option.browser = "default"
-
-from pypy.translator.js.test.runtest import compile_function
+from pypy.translator.js.main import rpython2javascript
 from pypy.translator.js.modules.dom import document
-from pypy.translator.js.modules.mochikit import log, logWarning, createLoggingPane, logDebug
-from pypy.translator.js.demo.jsdemo.bnb import BnbRootInstance
+from pypy.translator.js.modules.mochikit import log, logWarning,\
+     createLoggingPane, logDebug
+from pypy.translator.js.demo.jsdemo.bnb import exported_methods
 
 import time
 import os
-
-os.chdir("../demo/jsdemo")
+import sys
 
 def logKey(msg):
-    #log(msg)
     pass
 
 class Stats(object):
@@ -50,6 +44,7 @@
     def __init__(self):
         self.id = -1
         self.prev_count = 0
+        self.sessionid = ""
 
 player = Player()
 
@@ -140,14 +135,15 @@
 km = KeyManager()
 
 def appendPlayfield(msg):
-    bgcolor = '#FFF'
+    bgcolor = '#000'
     document.body.setAttribute('bgcolor', bgcolor)
     div = 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')
-    document.body.childNodes.insert(0, div)
+    #document.body.childNodes.insert(0, div)
+    document.body.appendChild(div)
 
 def appendPlayfieldXXX():
     bgcolor = '#000000'
@@ -189,6 +185,10 @@
         logWarning('unknown message type: ' + msg['type'])
 
 
+def ignore(arg):
+    pass
+ignore._annspecialcase_ = 'specialize:argtype(0)'
+
 def addPlayer(player_id):
     name  = "player no. " + str(player_id)
     #name  = "player no. %d" % player_id
@@ -197,13 +197,11 @@
     #    NotImplementedError: Type <StringBuilder>
     prev_player_id = player.id
     if player.id >= 0:
-        #log("removing " + name)
-        BnbRootInstance.remove_player(player.id, ignore_dispatcher)
+        exported_methods.remove_player(player.id, player.sessionid, ignore)
         player.id = -1
     if player_id != prev_player_id:
-        #log("adding " + name)
-        BnbRootInstance.add_player(player_id, ignore_dispatcher)
-        BnbRootInstance.player_name(player_id, name, ignore_dispatcher)
+        exported_methods.player_name(player_id, name, player.sessionid, ignore)
+        exported_methods.add_player(player_id, player.sessionid, ignore)
         player.id = player_id
 
 
@@ -231,32 +229,13 @@
     else:
         logWarning('unknown keyup: ' + str(c))
     
-def ignore_dispatcher(msgs):
-    pass
+#def ignore_dispatcher(msgs):
+#    pass
 
 def bnb_dispatcher(msgs):
-    #a = [str(i) for i in q]
-    #logDebug(str(a))
-    BnbRootInstance.get_message(player.id, ":".join([str(i) for i in km.get_keys()]), 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 = document.getElementById("playfield")
-    #    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))
-##        sm.frames.append(msgs)
-##    player.prev_count = count
-##        #else:
-    #    player.prev_count = count
-    #    for i in sm.frames:
-    #        render_frame(i)
+    s = ":".join([str(i) for i in km.get_keys()])
+    exported_methods.get_message(player.sessionid, player.id, s,
+                                 bnb_dispatcher)
     render_frame(msgs)
 
 def render_frame(msgs):
@@ -265,22 +244,25 @@
     stats.register_frame()
     document.title = str(stats.n_sprites) + " sprites " + str(stats.fps)
 
-def session_dispatcher(msgs):
-    BnbRootInstance.get_message(player.id, "", bnb_dispatcher)
+def session_dispatcher(sessionid):
+    player.sessionid = sessionid
+    document.onkeydown = keydown
+    document.onkeyup   = keyup
+    exported_methods.get_message(player.sessionid, player.id, "",
+                                 bnb_dispatcher)
+
+def bnb():
+    createLoggingPane(True)
+    log("keys: [0-9] to select player, [wsad] to walk around")
+    exported_methods.initialize_session(session_dispatcher)
 
-def run_bnb():
-    def bnb():
-        genjsinfo = document.getElementById("genjsinfo")
-        document.body.removeChild(genjsinfo)
-        createLoggingPane(True)
-        log("keys: [0-9] to select player, [wsad] to walk around")
-        BnbRootInstance.initialize_session(session_dispatcher)
-        document.onkeydown = keydown
-        document.onkeyup   = keyup
-    
+def run_bnb():    
     from pypy.translator.js.demo.jsdemo.bnb import BnbRoot
-    fn = compile_function(bnb, [], root = BnbRoot, run_browser = False)
-    fn()
+    from pypy.translator.js.lib import server
+    addr = ('', 7070)
+    httpd = server.create_server(handler=BnbRoot, server_address=addr)
+    httpd.source = rpython2javascript(sys.modules[__name__], ['bnb'])
+    httpd.serve_forever()
 
 if __name__ == '__main__':
     run_bnb()



More information about the Pypy-commit mailing list