查看: 2513|回复: 5

【RT1052】开发一个游戏

[复制链接]
  • TA的每日心情
    奋斗
    昨天 21:02
  • 签到天数: 751 天

    [LV.10]以坛为家III

    23

    主题

    1363

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    5265
    最后登录
    2024-4-27
    发表于 2018-12-10 03:00:49 | 显示全部楼层 |阅读模式
    晚上睡不着,来写游戏开发的心路历程吧
    一、游戏开发的目的
    如果是纯粹为了玩游戏,我觉得嵌入式并不适合,虽然RT1052性能还不错,但毕竟和电脑、ipad无法相比,而且开发的难度也是加倍的高。所以说,开发游戏是为了学习,或者说以另一种角度来打发时间(我觉得起码比打游戏更好)。
    二、基本硬件支持
    我这里环境相对恶劣,只有一个笔记本、一个飞凌的RT1052、一个480*272的真彩屏,所谓游戏,一定是有输入输出的,输入的话我采用笔记本键盘+串口,输出自然是LCD屏了。
    三、选择开发游戏种类
    说实话,我是比较倾向于战棋类游戏,多年前的炎龙骑士团、古大陆物语、天使帝国、梦幻模拟战等等,无一不是脍炙人口的精品系列,而且目前的硬件条件并不比2000年左右的电脑要差。我稍晚尝试了一下,受限于内存,图形文件并不能存储太多,所以……想做成“樱花大战”是肯定没戏了的。
    那么地图重复量大的“食豆”、“炸弹人”之类的游戏自然就成为首选,我在其中选择了一个对抗性稍强一点的“坦克大战”作为开发目标。
    四、素材集
    首先是图片的收集,坦克大战需要自己和敌人的坦克,生成字节流(这玩意我用Java做的),考虑到效果,我选择的是28*28的大小。结果放进去4个方向3个坦克,内存就不够用了。。。,好吧我只存一个方向的,反正是数组画图,坦克旋转就直接把数组转转就行。地形也类似,虽然每个标准地形(水、砖块、金属锭)都是28*28,但我实际只存储了7*7的,直接复制15份放置即可。爆炸效果存储的是14*14,旋转90度排列,正好边缘可以衔接上。子弹的话,直接用的是2*2的红点代替。另外司令部的标志我选取的是“神盾局”的标志。
    结构定义:
    typedef struct struct_tank{
            int tankNo;
            int direct;
            int speed;
            int pos_x;
            int pos_y;
            bool exist;
            bool ismoving;
            int step;
    }tank;

    五、编写代码
    天下文章一大抄,代码也是如此,我来说个我抄得半途而废的情况吧。我本来设计输入为轮询串口输入(显然不对头),改成中断。由于例程里面没有thread,自己重写也太过麻烦,幸好我看到有PIT。那么,我们可以做的这一点:定时刷新屏幕,这时坦克车可以走动,子弹也可以飞。


    好困了,睡觉,明天再继续跟帖。。。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3301

    主题

    6548

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32040
    最后登录
    2024-4-28
    发表于 2018-12-10 11:01:37 | 显示全部楼层
    谢谢分享,来支持下
    签到签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-12-10 14:37:24 | 显示全部楼层
    这个代码从哪里来的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 21:02
  • 签到天数: 751 天

    [LV.10]以坛为家III

    23

    主题

    1363

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    5265
    最后登录
    2024-4-27
     楼主| 发表于 2018-12-10 15:15:48 | 显示全部楼层
    mars4zhu 发表于 2018-12-10 14:37
    这个代码从哪里来的?

    什么代码?你说例程吗?飞凌给的啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-12-10 17:29:00 | 显示全部楼层
    tobot 发表于 2018-12-10 15:15
    什么代码?你说例程吗?飞凌给的啊

    游戏的代码啊。。。难道这个额游戏还是你从零开始写的吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 21:02
  • 签到天数: 751 天

    [LV.10]以坛为家III

    23

    主题

    1363

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    5265
    最后登录
    2024-4-27
     楼主| 发表于 2018-12-10 19:19:00 | 显示全部楼层
    本帖最后由 tobot 于 2018-12-10 19:29 编辑
    mars4zhu 发表于 2018-12-10 17:29
    游戏的代码啊。。。难道这个额游戏还是你从零开始写的吗?

    当然不是从零开始写的啊,图片是网上找的,我可没本事在一天内画这么多东西出来。。。一天抄抄改改写五六百行代码,我估计能搞定,但是要我一天画几十个坦克,实在是我能力范围之外了
    tank_enemy.jpg tank1.jpg tank2.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-28 17:54 , Processed in 0.159513 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表