GameDesign 板


LINE

不好意思又来打扰大家了~ 小弟Unity新手>< 最近在做一个2D接水管的游戏 游戏画面大概是这样子 https://imgur.com/jj9xHwo 25个方块是固定位置的 点击任一方块後会方块会旋转90度 我目前大概就做到这边~ 遇到瓶颈了想了好几天上来发问QQ 卡在"要怎麽让水流通到终点" (侦测是否连接成功) 并侦测到路径上有经过的所有水管 (算分数用)。 我是想做成"水有通的管子"会变成"蓝色"的 目前我的想法是在每个管子的"通口"加上一个圆形碰撞器,然後用is trigger配合脚本判断 是否"该通" , 概念如下 : https://imgur.com/a/roO3lGk 如果要侦测是否在通的状态,有办法侦测到碰撞到的物件的脚本 再取得他的bool变数吗 ? 我觉得这样好像搞太复杂了~会不会耗太多资源在侦测,还是不知道各位大大有没有推荐比 较有系统的方法呢 PS : 因为是新手,前面做的都比较偏向硬干的做法,有想过或许用array的概念实现游戏方 块架构,这样是不是会牵扯到一些演算技巧呢 -- Sent from my Windows --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.220.56
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1531229595.A.EE3.html ※ 编辑: Neverfor (180.217.220.56), 07/10/2018 21:37:53 ※ 编辑: Neverfor (180.217.220.56), 07/10/2018 21:46:01
1F:推 kingroy: 要做的话应该帮每一格都写一个通用的script,有四个bool07/10 23:15
2F:→ kingroy: 保存他的四个方向的状态,另外一个bool去保存水是不是有07/10 23:15
3F:→ kingroy: 流过来的状态,旋转时则把四个方向的bool跟着旋转。07/10 23:15
4F:→ kingroy: 有否连通就检查每个move後四周的格子跟对应方位的状态就07/10 23:17
5F:→ kingroy: 好07/10 23:17
6F:→ kingroy: 比起用array,把每一个格子需要有的特性写成script比较好07/10 23:19
7F:→ kingroy: ,另外做一段gamemanager的script去管理你全部的物件07/10 23:19
8F:推 cjcat2266: 推楼上,这种定义明确的系统自己写结构,清楚又有效率07/11 03:33
9F:→ cjcat2266: 用碰撞侦测是引入不必要的复杂性07/11 03:34
10F:→ dreamnook: 同 这不需要用碰撞去检查 他只是单纯的flag07/11 09:41
谢谢各位回覆,我有点不太懂,我回去画图思考一下,大概的概念是不用用碰撞器去侦测, 改用25个block的脚本设四个旋转的state,再用一个主script去算这25个block的对应关系 吗~还有四种形状的水管要用四种不同的写法 我在思考变成流通状态先後顺序的问题,但是每帧很快,是不是主script需要有一个延迟时 间延迟给他算@@ 我再想一下怎麽写 谢谢各位回覆~ ※ 编辑: Neverfor (180.217.193.219), 07/11/2018 13:49:31
11F:推 kingroy: 检查状态不要给update去做,虽然update很方便但25格每格07/11 14:52
12F:→ kingroy: 一次负担也不小,每次旋转後触发event叫gamemanager去检07/11 14:52
13F:→ kingroy: 查就好 07/11 14:52
14F:推 cjcat2266: 先把资料模型设计好吧,不要管互动、旋转、视觉等花边 07/11 15:38
15F:→ cjcat2266: 先想想写程式的话,资料要用什麽方式呈现 07/11 15:38
16F:→ cjcat2266: 例如使用代表方块类型和方向的struct的5x5矩阵 07/11 15:38
17F:→ cjcat2266: 要怎麽从一端出发,看看能不能走到另外一端(DFS? BFS?) 07/11 15:38
18F:→ cjcat2266: 如果连这个基本问题都不能解决,那成品就做不出来 07/11 15:38
19F:→ cjcat2266: 更正,DFS & BFS不只可看是否能连通,也可找出所有接触 07/11 15:39
@@ 小弟是EE背景的 我下个学期才要修DS跟演算 如果我现在钻研这个会看不懂吗QQ 有修 过C 基本C的pointer跟struct 记忆体位址概念都还OK 现在暑假比较有空慢慢钻研
20F:推 cjcat2266: 从视觉化编辑器设计下手,要注意别忽略基本资料模型设07/11 23:39
21F:→ cjcat2266: 计的重要性07/11 23:39
22F:推 cjcat2266: 等基本资料和逻辑都建设完善,再想视觉呈现和互动的包07/11 23:41
23F:→ cjcat2266: 装,会比较顺利07/11 23:41
24F:推 cjcat2266: 啊,我现在可以看出之前说的”基本问题”用词上可能会07/11 23:43
25F:→ cjcat2266: 被解读为我斥此问题为”过於简单”,请别误会,我的意07/11 23:43
26F:→ cjcat2266: 思是这个资料模型是埋藏於整个系统下的”基础建设”07/11 23:43
谢谢 大概了解C大你的意思了 我现在学Unity比较偏向看到什麽问题 再去学什麽 不知道这 样好不好呢 现在会的都是基础那些举凡碰撞器 触发 脚本一些物件互动 之前在练习都是2. 3个物件互动为多 现在碰到要一次处理多个物件比较不知道怎麽办 ※ 编辑: Neverfor (180.217.193.219), 07/12/2018 04:03:10 ※ 编辑: Neverfor (180.217.193.219), 07/12/2018 04:06:59
27F:推 cjcat2266: 会用到的东西,不用等学校开始教,直接去找教学资源 07/12 05:47
28F:→ cjcat2266: 钻研,比较快也比较深入,学校也只是带入门而已 07/12 05:48
29F:→ cjcat2266: 这已经是个比一般学校教材还要实际的应用题了 07/12 05:49
30F:→ cjcat2266: 解出来的话,经验会比印出作业要求的printf有意义多了 07/12 05:50
31F:推 cjcat2266: 这不用什麽特别的资料结构,就是单纯的5x5 struct阵列 07/12 05:59
32F:→ cjcat2266: 演算法可去研究BFS和DFS(breadth-/depth-first search) 07/12 06:00
33F:→ cjcat2266: 从起点开始,可以找出所有碰到的节点 07/12 06:00
好 我今天尝试了一下用结构表示 大概如下 : https://i.imgur.com/lHbzSd9.png https://i.imgur.com/S01paK5.png 这样把状态编码化 再利用这些码做我要的演算 这样子不知道方向对不对@@ 感觉这样子比 之前用碰撞器的做法浅显多了 ※ 编辑: Neverfor (180.217.193.130), 07/13/2018 00:52:18
34F:→ Neverfor: 话说要怎麽宣告5*5的结构啊XDD 07/13 00:54
35F:→ Neverfor: 只看到这种写法public block[,] = new block[5,] ; 07/13 00:55
36F:→ Neverfor: C#的array跟 C C++差真多 07/13 00:56
37F:推 cjcat2266: 还好吧,只是语言上些微差异,阵列底层的意义是一样的 07/13 01:25
38F:→ cjcat2266: C#和C/C++比较重要的差别之一是managed v.s. unmanaged 07/13 01:25
39F:→ cjcat2266: 你在C#不需要管的事情,C/C++不能忘记管 07/13 01:26
40F:→ cjcat2266: 那个旋转角度逻辑虽然说看起来没什麽问题,不过我不会 07/13 01:26
41F:→ cjcat2266: 像你那样用float比较个10度范围,感觉起来不严谨 07/13 01:27
42F:→ cjcat2266: 既然只有四种离散旋转角度,我会直接用int存90度倍数 07/13 01:27
43F:→ cjcat2266: 为了检查float是否为某个单一特定值,却用范围比较 07/13 01:33
44F:→ cjcat2266: 总是让我毛毛的。万一以後不只能以90度作改变,还要重 07/13 01:34
45F:→ cjcat2266: 新审视float精准度问题,感觉是不必要的负担 07/13 01:34
46F:→ Neverfor: 在面板上他显示90.000 -90.000 我写==90抓不到 我改用范 07/13 02:10
47F:→ Neverfor: 围就可以了QQ 他是写90.0000001这样 07/13 02:11
48F:→ Neverfor: 谢谢C大用心回覆:) 来慢慢研究怎麽让水通了 07/13 02:13
49F:推 cjcat2266: 那就是float精准度误差造成的啊,径度角度转一转就会 07/13 02:29
50F:→ cjcat2266: 有这种问题出现,比较float范围不是不行,但是这边逻辑 07/13 02:30
51F:→ cjcat2266: 上是明确的离散角度值,那就该用离散值(int,enum,etc.) 07/13 02:31
52F:→ cjcat2266: 存,逻辑才清楚 07/13 02:31







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP