游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2432|回复: 3

请教:成组刷怪如何实现

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-9-4 11:36:00 | 显示全部楼层 |阅读模式
在一个区域内(区域是中心坐标点,四角坐标点已知的矩形),随机刷N组怪,一组怪可以看为是一个中心坐标已知的矩形,当一组怪放入区域后,另外的几组怪不能与该组怪重叠,也可以理解为这组怪所在区域只能有这组怪存在,要怎么样实现比较好呢??求教

31

主题

257

帖子

1752

积分

金牌会员

申城谍影

Rank: 6Rank: 6

积分
1752
QQ
发表于 2012-9-4 12:31:00 | 显示全部楼层

Re:请教:成组刷怪如何实现

2种方法,最简单的思路是,比如区域内能容n组怪,

建个数组,int nMonsterArea[ n ]

取n以下随机数,

有重复就再取一次。。。。

第2种:

将数组赋值为0,1,2...n-1

遍历一次数组,打乱排列顺序。。。。。。

想生成几组,就取前几个的值。。。。。。。。

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-9-4 14:02:00 | 显示全部楼层

Re:请教:成组刷怪如何实现

可是N是未知的啊,这种方法不太可行吧

0

主题

37

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2012-9-6 15:27:00 | 显示全部楼层

Re:请教:成组刷怪如何实现

接1楼:
area* nMonsterArea[ n ]

loop
    int idx = rand(n);
    get nMonsterArea[idx];
    gen monster to the area...
    nMonsterArea[idx] = nMonsterArea[n - 1];
    n--;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-27 19:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表