登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
邀请注册
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
12
2
0
首页
电子DIY
›
扇巴掌demo-Ai-M61-32S
1
2
/ 2 页
下一页
返回列表
扇巴掌demo-Ai-M61-32S
[ 复制链接 ]
发布帖子
lclight
金牌会员
6
主题
18
回帖
1781
积分
金牌会员
金牌会员, 积分 1781, 距离下一级还需 1219 积分
金牌会员, 积分 1781, 距离下一级还需 1219 积分
积分
1781
私信
电子DIY
2311
12
2023-12-12 00:04:17
https://www.bilibili.com/video/BV1p94y1P7he/?spm_id_from=333.999.0.0
上传的附件:
Project_game.zip
(31.68 KB, 下载次数: 5)
2023-12-11 23:55 上传
点击文件名下载附件
以后有其它外设可以做成联机,谁输谁洗碗,解决家务纠纷
如果有相同的外设,需要配置以下内容,分别是屏幕和输入方式
#define
INPUT_DEF_PIN
GPIO_PIN_18
// 暂时用的输入方式
#define
INPUT_ATK_PIN
GPIO_PIN_19
#define
SDA_PIN
GPIO_PIN_31
#define
SCL_PIN
GPIO_PIN_30
#define
OLED_ADDR
0x78
其它:如果需要,可以接多个屏幕,只是需要稍微修改
附上设计思路
一、内容
互扇巴掌可以进行操作只有两个,攻击和防御。攻击如果击中可以让对方掉血,防御可以让对方打不中,
如果仅仅是这样,那攻击只有好处没有坏处,所以攻击一定要有副作用,比如攻击后硬直时间更长,若打不中则可能被对方攻击。
并且在发出攻击到对方受伤之间必须有时间差(如果一攻击立刻生效,那防御就是看运气),而且会造成谁先攻击谁胜利的局面。
所以这里可以得出,攻击必须有前摇,攻击后必须有硬直(也可以是需要攒气之类的,这里选用硬直)
防御需要前摇吗?不需要,因为防御是对应于攻击,增加防御前摇,跟减短攻击前摇效果是一样的。
而防御硬直必须比攻击硬直要短,否则防御到攻击之后,对方依然先行动,那防御就没意义了。
最后就变成玩家有3种行为:
1、攻击:收益大,风险高 => 有前摇和硬直,但可能打中对方
2、防御:收益中,风险中 => 短硬直,但可以免疫伤害
3、什么都不做:有收益,有风险 => 无硬直,可以进行任何操作,应对任何情况,但反应不过来就会被打
二、代码思路
1、逻辑层:
肚子饿了会咕咕叫,被打中了会掉血,攻击后要硬直一会,这就是逻辑,根据这些逻辑驱动万事万物下一步应该是什么状态,事物的状态决定了下一步的状态,比如待机状态可以进行攻击操作,攻击状态只能继续硬直等,本质上可以说是一个状态机。而玩家操作只是状态转移的一个变量。
2、表现层:
把需要表现的内容绘制到屏幕
三、代码逻辑
虽然看上去好像很复杂,但分解下来非常简单,新手也能看得懂,可以一步一步做出来。
1、对象管理
a、逻辑层需要驱动所有对象进入下一步的状态,但目前需要驱动的仅有对战的双方,而且也要判断他们之间的状态关系,所以按最简单的方式来做:直接写死。
b、表现层需要绘制的对象可就多了,所以通过链表管理。
渲染对象存在前后的关系,背景一定是在最后,UI一定是在最前面等等,所以把背景、人物、UI分为3层,分开来渲染会更简单。
我们通过一小段简单的
伪代码
来表示:
// 逻辑循环
logical_loop(){
player1.loop();
player2.loop();
do_something(&player1, &player2);
}
chain_draw(head){ // 绘制这个链表上所有对象
tmp = head;
while (tmp){
tmp->draw();
tmp = tmp -> next();
}
}
// 渲染
render_loop(){
// 绘制3个链表
chain_draw(bg_head);
chain_draw(sp_head);
chain_draw(ui_head);
}
// 主函数
main(){
init_all();
while(true){
logical_loop();
render_loop();
}
}
复制代码
大体逻辑确定,接下来就是填充细节,从最开始双方都处于就绪状态,此时可以操作,操作后可能进入3种不同状态
player.loop(){
switch this.state {
case idle_state:
switch get_input(this){
case atk:
this.state = atk_state;
case def:
this.state = def_state;
case none:
};
case ...
}
}
复制代码
如果处于攻击状态,会有一段时间前摇,然后攻击,然后硬直,所以需要一个辅助变量记录当前是到哪阶段,我们为了简单,用帧来表示时间
case atk_state:
state_frame ++;
switch state_frame {
case < N: // 假设前N帧是前摇,此时什么都做不了
this.state = atk_state;
case = N: // 第N帧是攻击,此时判断对方是否有防御并且在防御帧内,没有就扣血
if ( ! is_def_effect(player2) ){ do_something_hurt(player2)};
case <N2: // 硬直
none;
case >=N2: // 解除硬直
state_frame = 0;
this.state = idle_state;
};
复制代码
就这样一步一步填充内容,就大功告成了~
点赞
2
收藏
0
淘帖
2
────
2
人觉得很赞
────
本帖被以下淘专辑推荐:
·
M61&小安派DIY作品
|
主题: 39, 订阅: 2
·
优秀的作品
|
主题: 13, 订阅: 0
回复
使用道具
举报
12 回复
方源
回复
使用道具
举报
2023-12-12 08:47:17
赞!
回复
评论
使用道具
举报
WT_0213
回复
使用道具
举报
2023-12-12 08:51:27
有意思
回复
评论
使用道具
举报
爱笑
回复
使用道具
举报
2023-12-12 08:51:54
回复
评论
使用道具
举报
用心做好保姆工作
bzhou830
回复
使用道具
举报
2023-12-12 09:06:24
有意思
回复
评论
使用道具
举报
选择去发光,而不是被照亮
干簧管
回复
使用道具
举报
2023-12-12 09:06:32
不错
回复
评论
使用道具
举报
业余菜狗
来自手机
回复
使用道具
举报
2023-12-12 09:51:36
改成联机的,手动滑稽
回复
评论
使用道具
举报
lclight
楼主
回复
使用道具
举报
2023-12-12 09:57:15
业余菜狗 发表于 2023-12-12 09:51
改成联机的,手动滑稽
再有一块板子就可以改成联机的了
回复
评论
使用道具
举报
AXK123456
回复
使用道具
举报
2023-12-12 10:10:21
有点东西
回复
评论
使用道具
举报
曹县
回复
使用道具
举报
2023-12-12 10:49:01
好厉害
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
下一页 »
1
2
/ 2 页
下一页
今日推荐
【Ai-WB2评测】BLE+PWM控制RGB灯
小安派BW21-CBV开发板-初次体验
小安派BW21-CBV开发板测评-开箱
安信可离线语音模组 VC-01、VC-02 系列教程 【高级进阶篇】
WSL2+CentOS+WB2-32S+vscode点灯环境搭建教程
【Ai-WB2评测】VSCODE环境搭建的三种方式
【Ai-WB2-32S GPIO测试】
安信可离线语音模组 VC-01、VC-02 系列教程 【中级入门篇】
BW21-CBV-Kit开箱
【电子DIY作品】指纹保险箱v1.1+Ai-M61-32U+舵机锁
热帖排行
PB-03休眠求助
蓝牙调麻了呀
小安派-cam-d200求助
【Ai-WB2评测】BLE+PWM控制RGB灯
安信可到底有没有可靠的文档
小安派BW21-CBV开发板-初次体验
小安派BW21-CBV开发板测评-开箱
求助 AI-WB2 BL602 matter开发环境有搭建成功的吗?
统计信息
会员数: 28268 个
话题数: 40226 篇
首页
分类
我的