基于FPGA的弹球游戏

可编程逻辑

1348人已加入

描述

相信很多90后的朋友都玩过这个游戏。咱们当时是在游戏机上,那这次,咱们换一种玩法——在FPGA上玩这个游戏

在童年,咱们玩过的游戏肯定是数不胜数,像贪吃蛇、俄罗斯方块等,当时玩游戏的时候只是会感觉这种游戏好玩,自己也不会去想着这些游戏到底是怎么做的?

在从事FPGA这个行业之后,在公司做的基本上都是一些“高端”的项目,像这种游戏样的“玩具”,基本上没有哪个公司会拿FPGA去做,杀鸡焉用牛刀,毕竟用个低成本单片机能干的活何必要用FPGA这种高端货呢?当然你要说非得用FPGA来做这种游戏,对FPGA来讲也是小菜一碟。

购买了Kevin的图像处理课程的朋友应该大致能想到这个游戏的实现原理。开发这个游戏,也是想把这个小练习增加到暑假FPGA培训课程的基础练习中。

好了,来简单说下这个游戏的实现原理。在我讲完之后,相信爱思考的朋友可以大致明白这个游戏的设计思路。在理解设计思路之后,也可以尝试着做出来。

这个游戏用到的外设就只有按键和VGA,按键控制挡板的方向,VGA负责显示游戏界面。

对于按键控制,最基本的还是需要做一个消抖处理。当然并不仅仅是做消抖处理之后就可以用来控制方向,如果单纯的按键按下一次,挡板移动一个像素点,那可能你手指按疼了都赶不上小球移动的速度。

按下按键,过了抖动期之后,按键是可以稳定下来的,然后我们在稳定期内以一定的周期的采集按键的值。这样就可以实现在按键按下后,可以让挡板一直移动。

另外我个人认为大家觉得很好奇的一点是,为什么我可以让小球动起来呢?对于一些刚开始学FPGA的朋友,可能觉得让他显示一个小球就已经很困难了,还要让小球这样跳来跳去,,,顿时觉得FPGA真难!

为了实现小球动起来这个功能,我们一点一点来讲。

首先肯定要把VGA驱动起来,至少让VGA能显示个彩条吧!

接着,再来讲怎么让VGA显示小球。可以自己在网络先找个小球的图片,自己编辑好小球的尺寸,之后再用ROM保存小球图片的信息。

可以显示小球之后,就可以进一步实现小球的移动了。虽然我们看着小球是斜向下或斜向上移动,但它的坐标其实是在X方向和Y方向同时移动,所以在合成之后,就是斜向上和斜向下的效果。到了边界之后,相应移动的方向就做一个反向处理。

设计思路其实就这么简单,我做这个游戏也只花了一天的时间,代码量和工作量都不大。 

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分