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

ericvrp at codespeak.net ericvrp at codespeak.net
Tue Jun 27 13:00:49 CEST 2006


Author: ericvrp
Date: Tue Jun 27 13:00:47 2006
New Revision: 29400

Modified:
   pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
   pypy/dist/pypy/translator/js/jsbuiltin.py
   pypy/dist/pypy/translator/js/modules/dom.py
   pypy/dist/pypy/translator/js/modules/mochikit.py
   pypy/dist/pypy/translator/js/tools/start_bnb.py
Log:
Somewhat playable... (keyup event do not always trigger, this needs a fix)
The logging pane shows a little help message at startup.
Added keyup events
Added some more Mochikit logging functions


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	Tue Jun 27 13:00:47 2006
@@ -86,9 +86,21 @@
     port = int(port[7:-1])
     
     _methods = {
-        'get_message' : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
-        'add_player'  : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
-        'remove_player'  : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'get_message'  : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'add_player'   : MethodDesc( [('player_id', '0'), ('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'remove_player': MethodDesc( [('player_id', '0'), ('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key'          : MethodDesc( [('player_id', '0'), ('keynum', '0'), ('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        
+        'add_player0'   : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'remove_player0': MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key0'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key1'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key2'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key3'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key4'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key5'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key6'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
+        'key7'         : MethodDesc( [('callback', (lambda : None))] , {'aa':[{'aa':'bb'}]}),
     }
     
     
@@ -131,23 +143,61 @@
         return self.get_message()
 
     @turbogears.expose(format='json')
-    def add_player(self): #, player_id):
-        player_id = 0 #XXX hardcoded for now
+    def add_player(self, player_id):
         self.sessionSocket().send(message(CMSG_ADD_PLAYER, int(player_id)))
         return self.get_message()
 
     @turbogears.expose(format='json')
-    def remove_player(self): #, player_id):
-        player_id = 0 #XXX hardcoded for now
+    def add_player0(self):
+        return self.add_player(0)
+
+    @turbogears.expose(format='json')
+    def remove_player(self, player_id):
         self.sessionSocket().send(message(CMSG_REMOVE_PLAYER, int(player_id)))
         return self.get_message()
 
     @turbogears.expose(format='json')
+    def remove_player0(self):
+        return self.remove_player(0)
+
+    @turbogears.expose(format='json')
     def key(self, player_id, keynum):
         self.sessionSocket().send(message(CMSG_KEY, int(player_id), int(keynum)))
         return self.get_message()
 
     @turbogears.expose(format='json')
+    def key0(self):
+        return self.key(0, 0)
+
+    @turbogears.expose(format='json')
+    def key1(self):
+        return self.key(0, 1)
+
+    @turbogears.expose(format='json')
+    def key2(self):
+        return self.key(0, 2)
+
+    @turbogears.expose(format='json')
+    def key3(self):
+        return self.key(0, 3)
+
+    @turbogears.expose(format='json')
+    def key4(self):
+        return self.key(0, 4)
+
+    @turbogears.expose(format='json')
+    def key5(self):
+        return self.key(0, 5)
+
+    @turbogears.expose(format='json')
+    def key6(self):
+        return self.key(0, 6)
+
+    @turbogears.expose(format='json')
+    def key7(self):
+        return self.key(0, 7)
+
+    @turbogears.expose(format='json')
     def close(self):
         self._close()
         return dict()

Modified: pypy/dist/pypy/translator/js/jsbuiltin.py
==============================================================================
--- pypy/dist/pypy/translator/js/jsbuiltin.py	(original)
+++ pypy/dist/pypy/translator/js/jsbuiltin.py	Tue Jun 27 13:00:47 2006
@@ -18,6 +18,7 @@
             'll_alloc_and_set' : CallBuiltin('alloc_and_set'),
             'get_document' : lambda g,op: g.ilasm.load_const('document'),
             'set_on_keydown' : SetOnEvent('onkeydown'),
+            'set_on_keyup' : SetOnEvent('onkeyup'),
             'setTimeout' : SetTimeout,
             #'xmlSetCallback' : XmlSetCallback,
             'll_int_str' : lambda g,op: Call._render_builtin_method(g, 'toString' , [op.args[2]]),

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	Tue Jun 27 13:00:47 2006
@@ -33,6 +33,14 @@
 
 set_on_keydown.suggested_primitive = True
 
+def set_on_keyup(func):
+    if one():
+        func(Key("str"))
+    else:
+        func(Key("str2"))
+
+set_on_keyup.suggested_primitive = True
+
 class Node(object):
     _rpython_hints = {'_suggested_external' : True}
     

Modified: pypy/dist/pypy/translator/js/modules/mochikit.py
==============================================================================
--- pypy/dist/pypy/translator/js/modules/mochikit.py	(original)
+++ pypy/dist/pypy/translator/js/modules/mochikit.py	Tue Jun 27 13:00:47 2006
@@ -6,6 +6,22 @@
     pass
 createLoggingPane.suggested_primitive = True
 
+def log(data):
+    pass
+log.suggested_primitive = True
+
 def logDebug(data):
     pass
 logDebug.suggested_primitive = True
+
+def logWarning(data):
+    pass
+logWarning.suggested_primitive = True
+
+def logError(data):
+    pass
+logError.suggested_primitive = True
+
+def logFatal(data):
+    pass
+logFatal.suggested_primitive = True

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	Tue Jun 27 13:00:47 2006
@@ -14,8 +14,8 @@
 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.xmlhttp import XMLHttpRequest
-from pypy.translator.js.modules.mochikit import logDebug, createLoggingPane
-from pypy.translator.js.modules.dom import get_document, set_on_keydown
+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
 
 import time
@@ -30,7 +30,7 @@
 
 ##def msg_dispatcher(data):
 ##    for i in data['messages']:
-##        logDebug(i['type'])
+##        log(i['type'])
 ##    BnbRootInstance.get_message(msg_dispatcher)
 ##
 ##def test_mochikit():
@@ -93,7 +93,7 @@
         i.style.top = y + 'px'
         i.style.left = x + 'px'
         i.style.visibility = 'visible'
-    
+
     def hide_sprite(self, s):
         i = self.sprites[s]
         i.style.visibility = "hidden"
@@ -133,13 +133,51 @@
 
 
 def keydown(key):
-    if key.keyCode == '65': #Aa
-        BnbRootInstance.add_player(bnb_dispatcher)  #XXX player_id 0 hardcoded
-        #BnbRootInstance.add_player(bnb_dispatcher, 0)
-    elif key.keyCode == '82': #Rr
-        BnbRootInstance.remove_player(bnb_dispatcher)  #XXX player_id 0 hardcoded
-        #BnbRootInstance.remove_player(bnb_dispatcher, 0)
-    logDebug(key.keyCode)
+    #c = chr(int(key.keyCode)).lower()
+    #c = int(key.keyCode)
+    c = key.keyCode
+    if c == '65': #ord('A'):
+        BnbRootInstance.add_player0(bnb_dispatcher)
+        #BnbRootInstance.add_player(0, bnb_dispatcher)
+    elif c == '82': #ord('R'):
+        BnbRootInstance.remove_player0(bnb_dispatcher)
+        #BnbRootInstance.remove_player(0, bnb_dispatcher)
+    elif c == '68': #ord('D'):  #right
+        BnbRootInstance.key0(bnb_dispatcher)
+        log('start right')
+    elif c == '83': #ord('S'):  #left
+        BnbRootInstance.key1(bnb_dispatcher)
+        log('start left')
+    elif c == '69': #ord('E'):  #up
+        BnbRootInstance.key2(bnb_dispatcher)
+        log('start up')
+    elif c == '88': #ord('X'):  #fire
+        BnbRootInstance.key3(bnb_dispatcher)
+        log('start fire')
+    else:
+        logWarning('unknown keydown: ' + c)
+
+
+def keyup(key):
+    c = key.keyCode
+    if c in ('65', '82'): #Ignore A&R
+        pass
+    elif c == '68': #ord('D'):  #right
+        BnbRootInstance.key4(bnb_dispatcher)
+        log('stop right')
+    elif c == '83': #ord('S'):  #left
+        BnbRootInstance.key5(bnb_dispatcher)
+        log('stop left')
+    elif c == '69': #ord('E'):  #up
+        BnbRootInstance.key6(bnb_dispatcher)
+        log('stop up')
+    elif c == '88': #ord('X'):  #fire
+        BnbRootInstance.key7(bnb_dispatcher)
+        log('stop fire')
+    else:
+        logWarning('unknown keyup: ' + c)
+
+
 def bnb_dispatcher(msgs):
     BnbRootInstance.get_message(bnb_dispatcher)
     for msg in msgs['messages']:
@@ -152,8 +190,10 @@
     def bnb():
         #get_document().
         createLoggingPane(True)
+        log("keys: <a>dd player, <r>emove player and <e><s><d><x> to walk around")
         BnbRootInstance.get_message(bnb_dispatcher)
         set_on_keydown(keydown)
+        set_on_keyup(keyup)
     
     from pypy.translator.js.demo.jsdemo.bnb import BnbRoot
     fn = compile_function(bnb, [], root = BnbRoot, run_browser = True)



More information about the Pypy-commit mailing list