[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