tiao-yi-tiao
所属分类:VHDL/FPGA/Verilog
开发工具:SystemVerilog
文件大小:42KB
下载次数:0
上传日期:2019-12-24 10:49:18
上 传 者:
sh-1993
说明: 来自微信的“跳一跳”游戏的verilog版本
(a verilog version of "tiao-yi-tiao" game from WeChat)
文件列表:
pic (0, 2019-12-24)
pic\dead.bmp (1440056, 2019-12-24)
pic\dead.coe (2400065, 2019-12-24)
pic\start.bmp (1440056, 2019-12-24)
pic\start.coe (2400065, 2019-12-24)
src (0, 2019-12-24)
src\LFSR10bit.v (1084, 2019-12-24)
src\VGA.sv (2090, 2019-12-24)
src\check.sv (618, 2019-12-24)
src\control.v (4297, 2019-12-24)
src\counting.v (842, 2019-12-24)
src\create.v (703, 2019-12-24)
src\display.sv (5428, 2019-12-24)
src\jump.v (2760, 2019-12-24)
src\move.sv (719, 2019-12-24)
src\parameter.v (110, 2019-12-24)
src\pressing.v (453, 2019-12-24)
src\segdisplay.v (1384, 2019-12-24)
src\stagefall.v (1103, 2019-12-24)
src\top.sv (4350, 2019-12-24)
src\update.sv (1223, 2019-12-24)
# Verilog版微信“跳一跳”
使用verilog实现了2017年末上线的微信小程序游戏“跳一跳”,为魔术实验设计课程的大作业。
主要以**状态机为核心**,实现了**蓄力、跳动效果、掉落方块、加分、死亡判断**等功能,并且利用rom存储显示图片,简单地做了开始和死亡界面。
大致的示意图如下:
**
游戏规则为:**
> 1. 按键蓄力,松开后小人跳动,落到方块台子上获得加分。
> 2. 台子(stage)有红橙绿蓝四色,对应不同的分数。
> 3. 台子还有不同的宽度(三种),在一开始台子均较宽,随着分数提高难度增高,出现窄的台子,增加跳跃难度。
> 4. 落到台子中心部分,有额外的加分。
**从实验报告里选了部分内容简单介绍下:**
## 状态机
定义了**10**个状态,分别为:
- START:开始界面
- WAIT:等待玩家按键蓄力
- PRESSING:开始蓄力
- JUMP:蓄力结束
- CHECK:死亡判断
- UPDATE:更新方块
- FALL:用于为新的方块产生从上方落下的动画效果
- MOVE:移动视角,回到左侧
- DEAD:死亡状态,rst键重新开始
流程图如下:
## 模块设计
总设计图:
因为模块间传递信号较多,为了避免杂乱,只标注了control(控制)模块的控制信号以及总体的input、output信号。模块间具体信号传递直接见源码。
**注:**
rom1、rom2以及clk_wiz利用vivado ip核直接生成即可。rom1&2为480000x3,分别载入pic中的start/dead.coe文件(使用bmptomif生成后,再python简单处理成coe文件);clk生成40MHz。
## 演示
1. 进入开始界面:
2. 等待玩家按键:
3. 蓄力:
4. 跳动:
由于手机相机快门速度太低,故拍出来有重影,实际运行中动画较为流畅。
5. 分数计算:
6. 方块下落效果:
同样由于手机相机快门速度所限,有重影,实际过程中流畅:
7. 死亡界面:
8. 随着分数提高调整难度:
开始出现窄方块。
近期下载者:
相关文件:
收藏者: