没有 FC 红白机,我用 esp8266 徒手造一个玩游戏!

2018-10-05 17:24:58 +08:00
 cr4fun

在 esp8266 上面开发一款 chrome 浏览器离线时可玩的那款恐龙跳仙人掌的游戏。

原型

游戏的原型是 chrome 浏览器在离线时呈现的小恐龙跳仙人掌的游戏

视频演示地址: https://raw.githubusercontent.com/OpensourceBooks/chrome_offline_game_on_esp8266/master/demo.mp4


制作过程

所需的元器件:

  1. NodeMCU ( esp8266 芯片、4M 内存)
  2. 12864 oled ( ssd1306 驱动)
  3. 大按键按钮 (低电平触发)
  4. 杜邦线若干(母对母)

组装的效果图:

使用 excel 表格,制作游戏的像素图案

  1. 使用 excel 表格,绘制恐龙和仙人掌

  2. 用 1 和 0 进行填充,保存为 csv 文件,并用文本编辑器打开

  3. 写到代码里

    player = {}
    player["x"] = 10
    player["y"] = 44
    player["pixel"] = [
            (0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0),
            (0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1),
            (0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1),
            (0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1),
            (0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1),
            (0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0),
            (0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0),
            (0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0),
            (1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0),
            (1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0),
            (1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0),
            (1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0),
            (1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0),
            (0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0),
            (0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0),
            (0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0),
            (0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0),
            (0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
            (0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
            (0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0)
        ]
    

  4. 循环像素,显示小恐龙:

    pixels = player["pixel"]
    
        if(status["is_jump"]):
            player["y"]-=3
            if(player["y"]<15):
                status["is_jump"]=False
        else:
            player["y"]+=3
            if(player["y"]>=43):
                player["y"]=43
                status["is_jumpfinish"]=True
    
        for i in range(0,len(pixels)):
            for ii in range(0,len(pixels[i])):
                oled.pixel(player["x"]+ii,player["y"]+i,pixels[i][ii])
    

这里提供一个绘制好的 excel 文件 https://raw.githubusercontent.com/OpensourceBooks/chrome_offline_game_on_esp8266/master/game.xls

最后,代码全部在本仓库里。项目地址 https://github.com/OpensourceBooks/chrome_offline_game_on_esp8266

视频演示地址: https://raw.githubusercontent.com/OpensourceBooks/chrome_offline_game_on_esp8266/master/demo.mp4

7400 次点击
所在节点    分享创造
31 条回复
but0n
2018-10-06 01:53:16 +08:00
安利下之前收藏的取模工具 https://www.v2ex.com/t/439466#reply2
liwei
2018-10-06 10:37:54 +08:00
@brotherlegend 这个应该是官方
[NodeMCU Lua WiFi 测试板 开发板 基于 ESP8266WiFi 模块 安信可] http://m.tb.cn/h.3STELfE?sm=71218b 点击链接,再选择浏览器咑閞;或復·制这段描述¥ ymOmb5SuECt ¥后到👉淘♂寳♀👈[来自超级会员的分享]
sobigfish
2018-10-06 11:35:39 +08:00
@liwei #21 板子不一样,但他们家的好像也不错
ESP32 系列看起来可以
cr4fun
2018-10-06 20:11:32 +08:00
@fengc 嗯,自己写的游戏自己都玩不好...
cr4fun
2018-10-06 20:13:08 +08:00
@mobi i2c 比较慢,如果 spi 可能会好一些。当初觉得 2 根线能搞定显示何必用 4 根,所以没买 spi 的 oled。
cr4fun
2018-10-06 20:18:13 +08:00
@brotherlegend 不能推荐,我买了 5 块板子,只有 3 个好使,这东西只能玩玩。建议买乐鑫原厂的 esp8266 模块自己做开发板,加 4M 存储空间就够了,最好加到 16M,这样还可以把游戏声音写进去。
brotherlegend
2018-10-07 07:53:00 +08:00
@cr4fun 好像好多人都反馈这玩意买的都部分有问题
maemolee
2018-10-07 19:38:13 +08:00
可以可以,用 excel 画图很创意。
728528678
2018-10-08 22:16:02 +08:00
很有创意,哈哈哈
PythonAnswer
2018-10-09 04:14:58 +08:00
恐龙仙人跳, 好像很好玩啊!! 支持
supuwoerc
2018-10-09 21:07:43 +08:00
是个狠人=。=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/495048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX