Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- viewport = document.getElementById "viewport"
- colortable =
- 'w': "White"
- 'o': "OrangeRed"
- ' ': "Black"
- colorize = (rep, fore, back) ->
- gargle = "<span style='color:#{fore}; background-color:#{back}'>#{rep}</span>"
- gargle
- # colortable[ fore_colormap[y][x] ]
- class Entity
- constructor: ( @repr, @x, @y, @foreground) ->
- moveEntity: ( newX, newY ) ->
- if map[ newY ][ newX ] == ' '
- map[ @y ][ @x ] = colorize(' ', "White", "Black")
- fore_colormap[ @y ][ @x ] = 'w'
- back_colormap[ @y ][ @x ] = ' '
- [ @x, @y ] = [newX, newY]
- map[ @y ][ @x ] = colorize(@repr, @foreground, "Black")
- fore_colormap = (row.split '' for row in '''
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwowwwowwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- wwwwwwwwwwwwww
- '''.split '\n')
- back_colormap = (row.split '' for row in '''
- wwwwwwwwwwwwww
- w w
- w w
- w w
- w ww ww w
- w w w w
- w w w w
- w w w w
- w wwwww w
- w w
- wwwwwwwwwwwwww
- '''.split '\n')
- map = (row.split '' for row in '''
- ##############
- # #
- # #
- # #
- # ##+## #
- # # # #
- # # # #
- # # ☺ # #
- # ##### #
- # #
- ##############
- '''.split '\n')
- i = 0
- i2 = 0
- while (i < map.length)
- while (i2 < map[i].length)
- map[i][i2] = colorize(map[i][i2], colortable[ fore_colormap[i][i2] ], colortable[ back_colormap[i][i2] ] )
- player = new Entity ('@', 5, 7, "OrangeRed")
- # x = 5
- # y = 7
- [LEFT, DOWN, RIGHT, UP] = [37..40]
- handleKeyup = ( e ) ->
- switch e.keyCode
- when LEFT then player.moveEntity (player.x - 1, player.y)
- when RIGHT then player.moveEntity (player.x + 1, player.y)
- when UP then player.moveEntity (player.x, player.y + 1)
- when DOWN then player.moveEntity (player.x, player.y - 1)
- ###
- moveEntity = ( newX, newY ) ->
- if map[ newY ][ newX ] == ' '
- map[ y ][ x ] = ' '
- [x, y] = [newX, newY]
- map[ y ][ x ] = "<span style='color:GreenYellow'>y</span>"
- viewport.innerHTML = (row.join '' for row in map).join '\n'
- ###
- render = ->
- viewport.innerHTML = (row.join '' for row in map).join '\n'
- document.addEventListener 'keyup', handleKeyup, false
- # Fake a keypress to render the map immediately
- handleKeyup keyCode:RIGHT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement