JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Change the new tile animation
authorChang Liu <verychgliu@gmail.com>
Sun, 14 Apr 2013 21:01:40 +0000 (17:01 -0400)
committerJason Woofenden <jason@jasonwoof.com>
Mon, 15 Apr 2013 02:33:49 +0000 (22:33 -0400)
main.coffee

index 1700d10..be5a85f 100644 (file)
@@ -80,7 +80,7 @@ board_col_top_px = []
 score = 0
 board = new Array(board_tiles) # letters ("Qu" or single letter)
 board_neighbors = [] # array of tile numbers "next to" this one
-board_top_px = [] # array of pixel coordinates for top of column
+tile_top_px = [] # array of pixel coordinates for top of column
 board_left_px = [] # array of pixel coordinates for left of column
 board_aboves = [] # array of tile numbers above, starting from top
 board_below = [] # tile number of next tile below or false
@@ -189,7 +189,7 @@ init_board_layout = () ->
                        is_bottom_tile = i is board_col_heights[col_num] - 1
 
                        # link tile number to pixel "top" and "left" of containing column
-                       board_top_px.push col_top_px
+                       tile_top_px.push col_top_px + i * tile_width
                        board_left_px.push col_num * tile_width
 
                        # aboves (array of tile numbers above, starting from top)
@@ -285,12 +285,8 @@ selected_word = ->
        word += board[i] for i in selected
        return word.toLowerCase()
 
-html_slide = (num, dist) ->
-       if dist
-               cur = html_tiles[num].css 'top'
-               cur = Number(cur.substr(0, cur.length - 2))
-               dest = cur + (dist * tile_width)
-               html_tiles[num].animate {top: "#{dest}px"}, slide_ms
+html_slide = (num) ->
+       html_tiles[num].animate {top: "#{tile_top_px[num]}px"}, slide_ms
 
 save_game = ->
        encoded = ''
@@ -314,7 +310,7 @@ blip_selection = ->
                        if cur_top is undefined
                                cur_top = fader
                        if top_tile isnt cur_top
-                               new_px = board_top_px[fader] - tile_width
+                               new_px = -20 - tile_width
                                new_slide = 1
                                top_tile = cur_top
                        html_tiles[fader].remove()
@@ -329,10 +325,11 @@ blip_selection = ->
                        new_tile top_tile, board_left_px[top_tile], new_px
                        slides[top_tile] = new_slide
                        new_px -= tile_width
+                       new_px -= 50
                        new_slide += 1
                for i in [0 .. board.length - 1]
-                       html_slide i, slides[i]
-                       slides[i] = 0
+                       if slides[i]
+                               html_slide i
                save_game()
        update_selection_display()