查看: 4132|回复: 16

[有事请教] 遊戲製作討論 [ 射泡泡 ] . 求思路 ~

[复制链接]
梦石
0
星屑
7997
在线时间
1442 小时
注册时间
2018-12-16
回帖
1843
发表于 2020-5-30 14:13:08 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
下載.jpg

目前想到的是:
01. 使用ABS插件. 主角是下方的泡泡 往上射出泡泡如果遇到相同顏色的泡泡. 則泡泡爆炸
02.下面主角因為無法多角度射擊泡泡. MV好像沒這功能. 所以只好改成方向固定上方.左右移動

但是目前遇到的問題是 如何判斷相鄰的泡泡也是跟射擊的泡泡相同顏色的條件要如何下?

請問各位大佬會有好思路嗎?
梦石
0
星屑
1343
在线时间
153 小时
注册时间
2020-4-26
回帖
146
发表于 2020-5-30 17:39:08 | 显示全部楼层
我用了代码来判断,貌似可行,思路是所有泡泡都是事件,由射出去的泡泡开始,循环判断其八方向的其他事件,如果颜色相同(在事件里可能就是行走图相同),则继续以颜色相同的那个事件为主体,同样判断八方向的事件,这样滚动下去,直到找到所有相连的同颜色事件,最后判断相连的数量大小,来进行消除。

点评

對啊  发表于 2020-5-31 07:33
每次射出去的泡泡.都要用代碼循環判定所有的泡泡是不是相同顏色嗎?  发表于 2020-5-30 21:32
回复

使用道具 举报

梦石
0
星屑
3130
在线时间
419 小时
注册时间
2015-8-8
回帖
371

R考场第七期纪念奖

发表于 2020-5-31 11:39:23 | 显示全部楼层
本帖最后由 冷俊逸 于 2020-5-31 15:38 编辑

楼上正解,就是深度优先搜索…

点评

我去做个试试,稍等  发表于 2020-5-31 14:19
如何判斷鄰近的泡泡的顏色是否相同呢?  发表于 2020-5-31 13:50
旧作《邵彦朝的大冒险》下载

默默无闻的论坛观察者
回复

使用道具 举报

梦石
0
星屑
3130
在线时间
419 小时
注册时间
2015-8-8
回帖
371

R考场第七期纪念奖

发表于 2020-5-31 15:38:32 | 显示全部楼层
做了个rmvx版的,可以参考一下,虽然很粗糙

Bubble.7z

234.7 KB, 下载次数: 50

点评

我的是MV...無法開啟這個... >_<  发表于 2020-5-31 16:03
旧作《邵彦朝的大冒险》下载

默默无闻的论坛观察者
回复

使用道具 举报

梦石
0
星屑
25359
在线时间
1136 小时
注册时间
2019-3-5
回帖
1303
发表于 2020-5-31 16:50:52 | 显示全部楼层
上代码吧少年,纯事件写这个坐标判断起来怕是头都要大。或者可以看看国外论坛有没有类似的插件
回复

使用道具 举报

梦石
2
星屑
6767
在线时间
501 小时
注册时间
2018-3-23
回帖
487

R考场第七期银奖

发表于 2020-5-31 17:07:28 | 显示全部楼层
不脚本你真的会爆炸……
但用脚本会很简单,包括多角度其实也就是简单的函数处理而已,你甚至可以给他加缓动(x
反正这种功能不专门定制,用其他插件套的话会非常麻烦。比如你可以试着用事件写一个简单的深搜(
祝好。
回复

使用道具 举报

梦石
0
星屑
1343
在线时间
153 小时
注册时间
2020-4-26
回帖
146
发表于 2020-5-31 18:29:57 | 显示全部楼层
我的代碼長這樣,請指教一下。另外我最近在用RM做俄羅斯方塊,遇到一些困難,有沒有甚麼思路和建議?

[pre lang="javascript"]function findLine(root) {
    let line = [];
    line.push(root);
    findNear(root);

    function findNear(event) {
        let name = event.characterName();
        let index = event.characterIndex();
        let direction = event.direction();
        check(event.x + 1, event.y);
        check(event.x - 1, event.y);
        check(event.x, event.y + 1);
        check(event.x, event.y - 1);
        check(event.x + 1, event.y + 1);
        check(event.x - 1, event.y - 1);
        check(event.x + 1, event.y - 1);
        check(event.x - 1, event.y + 1);

        function check(x, y) {
            let event2 = $gameMap.eventsXy(x, y)[0];
            if (event2) {
                let name2 = event2.characterName();
                let index2 = event2.characterIndex();
                let direction2 = event2.direction();
                if (name2 === name && index2 === index && direction2 === direction) {
                    if (line.indexOf(event2) === -1) {
                        line.push(event2);
                        findNear(event2);
                    }
                }
            }
        }
    }
    return line;
}[/pre]

点评

就是我說的那樣用的啊  发表于 2020-6-2 01:53
請問這麼代碼的作用是甚麼呢?  发表于 2020-6-1 22:04
是  发表于 2020-6-1 11:08
這是MV的腳本代碼嗎?  发表于 2020-5-31 23:40
回复

使用道具 举报

梦石
0
星屑
7997
在线时间
1442 小时
注册时间
2018-12-16
回帖
1843
 楼主| 发表于 2020-6-2 09:31:46 | 显示全部楼层
要怎麼使用[事件]讓全部的泡泡下降一層. 然後我在最上方補上一層全新的亂數泡泡呢?

我現在想到的是.

事件:
01.等待1200
02.最上方那一層的事件.會自動生成新的泡泡

但是我想要的是 全部下向一層之後. 然後最上方在生成一層新的泡泡

這個[思路]應該要怎麼設定呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部