谁说Sublime不能做小游戏?

作者: Floyda | 来源:发表于2017-06-30 11:28 被阅读82次

    github: game-of-tetris

    一图胜千言

    tetris

    缘起

    群里有人问, Sublime能不能做点好玩的东西?
    当然能啊!

    技术分析

    本质上是一个Sublime的插件, 用现有插件的API, 来实现一个小游戏.

    输入

    • 首先创建一个游戏的View, 在view.setting里面加一个游戏标识(isGameTetris).
    • 监听键盘事件. 如果"key": "setting.isGameTetris"等于("operator": "equal")真("operand": true), 那么触发tetris_operation.
        { "keys": ["up"], "command": "tetris_operation", "args": {"operation": "up"}, "context":[
            { "key": "setting.isGameTetris", "operator": "equal", "operand": true }
        ]},
        { "keys": ["down"], "command": "tetris_operation", "args": {"operation": "down"}, "context":[
            { "key": "setting.isGameTetris", "operator": "equal", "operand": true }
        ]},
        { "keys": ["left"], "command": "tetris_operation", "args": {"operation": "left"}, "context":[
            { "key": "setting.isGameTetris", "operator": "equal", "operand": true }
        ]},
        { "keys": ["right"], "command": "tetris_operation", "args": {"operation": "right"}, "context":[
            { "key": "setting.isGameTetris", "operator": "equal", "operand": true }
        ]},
    
    • tetris_operation其实就是tetris.py里面定义的class TetrisOperation(sublime_plugin.WindowCommand):

    输出

    • 游戏的渲染, 是tetris.py里面的class TetrisRender(sublime_plugin.TextCommand):
    • 其原理就是把view里面的东西删除, 根据游戏数据, 重新insert一个新的内容进去.
    • 目前是很戳的字符集, 后期可能用MiniHTML来替换这个部分.

    其他则是游戏的实现过程, 和Sublime无关(略)


    EOF

    相关文章

      网友评论

        本文标题:谁说Sublime不能做小游戏?

        本文链接:https://www.haomeiwen.com/subject/lcvbcxtx.html