查看: 6078|回复: 9

arduino game 贪吃蛇【详细】

[复制链接]
  • TA的每日心情
    开心
    2018-8-16 10:13
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2018-1-19 18:18 | 显示全部楼层 |阅读模式
    本帖最后由 hhz1468255512 于 2019-10-29 10:38 编辑

    天天看书,女票天天在家闲着,哎,生活有点累啊(心累,别多想)。乏的时候就逛逛论坛,前几天看见这个社区有人做了个贪吃蛇的游戏,,还有一堆评论说没接线图,按键没反应等等,我这整理的都比较详细,看完记得点点我,各位老铁。
    这是按键部分
    #define UP 5//定义方向键上为Arduino上的D5号引脚
    #define DOWN 4//定义方向键上为Arduino上的D4号引脚
    #define LEFT 3//定义方向键上为Arduino上的D3号引脚
    #define RIGHT 2//定义方向键上为Arduino上的D2号引脚
    #define A 8//定义方向键上为Arduino上的D8号引脚
    #define B 9//定义方向键上为Arduino上的D9号引脚(暂时不用)

    用的arduino nano
    开机显示的界面文字需要的大佬自己改吧,我反正是为了装逼改的自己网名Formatmemory,哈哈
    /***********************************************/
    void welcome()
    {
       u8g.firstPage();//第一页显示
       do
       {
         u8g.setFont(u8g_font_gdr14r);//坐标函数    gdr14r是字体,这个也可以自己改
         u8g.setPrintPos(0, 20);
         u8g.print("Snake Game");//这里可以自己下载程序后根据自己需要改
         u8g.setPrintPos(0, 38);
         u8g.print("             v2.0");//这里可以自己下载程序后根据自己需要改
         u8g.setFont(u8g_font_9x18);
         u8g.setPrintPos(0, 55);
         u8g.print("Formatmemory");//这里可以自己下载程序后根据自己需要改
       } while (u8g.nextPage());
    }
    /***********************************************/

    我已经解决了按键没反应的问题,原来社区里的那个同学函数不完整,但是能编译通过。。。。坑
    这个游戏速度开始稍微快的,碰到界限会挂掉,吃完一个豆会加5分
    原作者中D9接口(B游戏键)没有定义,可以自己开发(我的想法是改成一个返回键或者开机键)有会改的大神改完能发给我一下吗。。嘿嘿
    这里是选择player后显示的信息
    //使用说明(player)主函数
    void tetrs()
    {
       int flag = 1;
       while (flag)
       {
           u8g.firstPage();
           do
           {
                u8g.setFont(u8g_font_9x18);
                u8g.setPrintPos(1, 20);
                u8g.print("1.UP:chose1");//这里可以自己下载程序后自己改 尽量字符别太长
                u8g.setPrintPos(1, 35);
                u8g.print("2:start is:A");  //这里可以自己下载程序后自己改
                u8g.setPrintPos(1, 50);
                u8g.print("3.enjoy it");//这里可以自己下载程序后自己改

    ==接线方式==
    OLED显示屏                       Arduino
    VCC                                       5V
    GND                                     GND
    SDA                                        A4
    SCL                                         A5

    ———————————————-
    按键                                   Arduino
    上                                         D5
    下                                         D4
    左                                         D3
    右                                         D2
    A(开始/确定键)                 D8
    B(暂无,可不接)               D9

    按键一边接开发板输出口,另一边接Gnd,这几个键可以共地,方便。
    编译时可能没下载过U8glib库的会提示错误,在IDE里的"添加库”里下载这个库,装完重新烧录就OK了,有问题留言或者加qq。。146825552,备注arduino game


    psb (1).jpg
    psb (2).jpg
    psb.jpg
    QQ图片20180119181808.png

    tanshishe.zip

    2.59 KB, 下载次数: 212

  • TA的每日心情
    开心
    2017-7-27 23:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-6-12 12:38 | 显示全部楼层
    仔细研究了一下有几个错误,楼主要修改一下呀!
    snake_eat_body函数里
    if((snake_x[0]==snake_x[i])&&(snake_y[0]==snake_y[i]))
    应该修改为
    if((x_temp==snake_x[i])&&(y_temp==snake_y[i]))
    还有
    if(snake_knock_wall(snake_dir==1))
    应该修改为
    if(snake_knock_wall(snake_dir)==1)

    该用户从未签到

    发表于 2018-7-15 20:05 | 显示全部楼层
    赞楼主,学习了!!!
  • TA的每日心情
    奋斗
    2018-9-17 22:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-9-17 22:01 | 显示全部楼层
    按键设置那里的A是?

    该用户从未签到

    发表于 2018-11-21 20:21 | 显示全部楼层
    请问我用了您的代码但出现了no matching function for call to 'U8GLIB_SSD1306_128X64::setFont()'问题该怎么解决
  • TA的每日心情
    开心
    2018-8-16 10:13
  • 签到天数: 4 天

    [LV.2]偶尔看看I

     楼主| 发表于 2018-11-23 09:00 | 显示全部楼层
    zyt123@ 发表于 2018-11-21 20:21
    请问我用了您的代码但出现了no matching function for call to 'U8GLIB_SSD1306_128X64::setFont()'问题该 ...

    ssd1306 版本3.2.7
  • TA的每日心情
    奋斗
    2019-4-24 20:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-4-24 21:23 | 显示全部楼层
    报错:Serial port not selected. 怎么解决
  • TA的每日心情
    郁闷
    2019-8-16 23:35
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2019-4-30 20:54 | 显示全部楼层
    目前编译通过了,等有空再搭个玩玩,谢谢楼主啦!

    该用户从未签到

    发表于 2019-8-1 09:48 | 显示全部楼层
    楼主QQ找不到你 啊
  • TA的每日心情
    开心
    2018-8-16 10:13
  • 签到天数: 4 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-11-9 16:20 | 显示全部楼层
    sunxdd 发表于 2019-6-12 12:38
    仔细研究了一下有几个错误,楼主要修改一下呀!
    snake_eat_body函数里
    if((snake_x[0]==snake_x)&&(snake_y ...

    赞,我去改改
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    [2019-4-20]RPG无人世界
    [2019-4-20]RPG无人世界
    剧情:主角玄影,为了逃避██的追杀迫不得已发动████在濒死状态来到█
    求助多个开关控制一条WS2812方法
    求助多个开关控制一条WS28
    本人已经写好不同的VIOD的模式 用的是Adafruit_NeoPixel库 但现在需要三个不同的开
    使用VSCode下载arduino的时候报错
    使用VSCode下载arduino的
    在VSCode中选择端口和板子的型号时提示Please check the "arduino.commandPath" in th
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表