爱意满满的作品展示区。
cr4fun

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

  •  1
     
  •   cr4fun · Oct 5, 2018 · 9066 views
    This topic created in 2957 days ago, the information mentioned may be changed or developed.

    在 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

    31 replies  •  2018-10-09 21:07:43 +08:00
    delectate
    delectate
    Oct 5, 2018
    1
    楼主很厉害,手动点赞。
    carlclone
    carlclone
    Oct 5, 2018 via Android
    2
    666
    des
    des
    Oct 5, 2018 via Android❤️1
    3
    老哥,不需要 excel 啊。
    保存成 bmp,直接读啊
    yuelang85
    yuelang85
    Oct 5, 2018
    4
    相当不错,很有启发意义
    isnowify
    isnowify
    Oct 5, 2018
    5
    厉害!!
    iwtbauh
    iwtbauh
    Oct 5, 2018 via Android❤️1
    6
    纠正一个概念问题

    电子表格 != excel
    同理
    演示文稿,幻灯片 != ppt
    pityhero233
    pityhero233
    Oct 5, 2018 via Android
    7
    @iwtbauh 对啊对啊,看到楼主在用开源电子表格了还叫 excel 很无奈╮(╯_╰)╭
    diggerdu
    diggerdu
    Oct 5, 2018 via iPhone
    8
    @pityhero233 习惯问题 都懂就行
    iwj
    iwj
    Oct 5, 2018
    9
    帅呆了,给你点个赞!
    mobi
    mobi
    Oct 5, 2018
    10
    看演示视频感觉刷新率有点低,建议不要用 python 写,我之前用 arduino 写的 fps 也有 60,也有见过别人 fps 能到 150 的
    Sukizen
    Sukizen
    Oct 5, 2018
    11
    看演示视频真的好捉急,老是 game over
    circleee
    circleee
    Oct 5, 2018
    12
    牛
    CEBBCAT
    CEBBCAT
    Oct 5, 2018
    13
    @mobi #10 有 Github 地址吗?
    abmin521
    abmin521
    Oct 5, 2018
    14
    不错不错 曾被同款 OLED 烧到手
    CEBBCAT
    CEBBCAT
    Oct 5, 2018
    16
    @mobi 非常感谢
    t123yh
    t123yh
    Oct 5, 2018 via Android
    17
    @abmin521 OLED 是怎么烧到手的
    fengc
    fengc
    Oct 5, 2018
    18
    哇 66666
    就是视频老是 GAME OVER 有点着急 QUQ ~
    brotherlegend
    brotherlegend
    Oct 6, 2018 via Android
    19
    一直想买 8266 来玩,但淘宝上面好多质量不行的,楼主推荐个连接
    but0n
    but0n
    Oct 6, 2018 via iPhone
    20
    还有这种取模操作 学习了
    but0n
    but0n
    Oct 6, 2018 via iPhone
    21
    安利下之前收藏的取模工具 https://www.v2ex.com/t/439466#reply2
    liwei
    liwei
    Oct 6, 2018 via Android
    22
    @brotherlegend 这个应该是官方
    [NodeMCU Lua WiFi 测试板 开发板 基于 ESP8266WiFi 模块 安信可] http://m.tb.cn/h.3STELfE?sm=71218b 点击链接,再选择浏览器咑閞;或復·制这段描述¥ ymOmb5SuECt ¥后到👉淘♂寳♀👈[来自超级会员的分享]
    run2
    run2
    Oct 6, 2018
    23
    @liwei #21 板子不一样,但他们家的好像也不错
    ESP32 系列看起来可以
    cr4fun
    cr4fun
    OP
    Oct 6, 2018 via iPhone
    24
    @fengc 嗯,自己写的游戏自己都玩不好...
    cr4fun
    cr4fun
    OP
    Oct 6, 2018 via iPhone
    25
    @mobi i2c 比较慢,如果 spi 可能会好一些。当初觉得 2 根线能搞定显示何必用 4 根,所以没买 spi 的 oled。
    cr4fun
    cr4fun
    OP
    Oct 6, 2018 via iPhone
    26
    @brotherlegend 不能推荐,我买了 5 块板子,只有 3 个好使,这东西只能玩玩。建议买乐鑫原厂的 esp8266 模块自己做开发板,加 4M 存储空间就够了,最好加到 16M,这样还可以把游戏声音写进去。
    brotherlegend
    brotherlegend
    Oct 7, 2018 via Android
    27
    @cr4fun 好像好多人都反馈这玩意买的都部分有问题
    maemolee
    maemolee
    Oct 7, 2018
    28
    可以可以,用 excel 画图很创意。
    728528678
    728528678
    Oct 8, 2018
    29
    很有创意,哈哈哈
    PythonAnswer
    PythonAnswer
    Oct 9, 2018
    30
    恐龙仙人跳, 好像很好玩啊!! 支持
    supuwoerc
    supuwoerc
    Oct 9, 2018
    31
    是个狠人=。=
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   981 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    ♥ Do have faith in what you're doing.