谁说Sublime不能做小游戏?

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

推荐阅读更多精彩内容

  • ` /* On OS X, basic text manipulations (left, right, comm...
    yanlee26阅读 232评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 129,388评论 18 137
  • 本节索引 sublime Text3 插件的安装 代码编辑非常有用的5个插件 配置React 开发环境所需要的插件...
    南航阅读 42,484评论 7 24
  • 下载:Sublime Text 3 官方下载地址Sublime Text 3 汉化破解版 资料:Sublime T...
    追風逸少丶阅读 6,012评论 0 4
  • 丹青的备忘录(一) 果晓红 2017年3月29日,是忙碌、愉快而充实的一天,我除了中午吃饭的十分钟,其余时间都在工...
    果晓红阅读 378评论 2 1
  • 暮色四合,走出店门,猛然惊觉,已是华灯初上,暮色苍苍……远处的晚霞映在体育场的上空,竟有一种大气磅搏的...
    A_范范阅读 176评论 0 1
  • 继续查项目。 遇到了两位特别可爱的老师,她们工作起来认真负责,且具有权威性和专业性;她们生活中私交甚好...
    木兮日记阅读 53评论 0 0