[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