V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
cr4fun

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

  •  1
     
  •   cr4fun · Oct 5, 2018 · 8384 views
    This topic created in 2773 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
        1
    delectate  
       Oct 5, 2018
    楼主很厉害,手动点赞。
    carlclone
        2
    carlclone  
       Oct 5, 2018 via Android
    666
    des
        3
    des  
       Oct 5, 2018 via Android   ❤️ 1
    老哥,不需要 excel 啊。
    保存成 bmp,直接读啊
    yuelang85
        4
    yuelang85  
       Oct 5, 2018
    相当不错,很有启发意义
    isnowify
        5
    isnowify  
       Oct 5, 2018
    厉害!!
    iwtbauh
        6
    iwtbauh  
       Oct 5, 2018 via Android   ❤️ 1
    纠正一个概念问题

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