游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3248|回复: 7

[讨论] 类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?有

[复制链接]

8

主题

32

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2011-6-8 16:13:00 | 显示全部楼层 |阅读模式
如题~蓄力的射击规则是如何的呀?空格键蓄力,按得越久,射程越远。但是具体详细的规则是如何解释呀???

0

主题

743

帖子

743

积分

高级会员

Rank: 4

积分
743
发表于 2011-6-8 17:39:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

1.按键检测
做定时器-状态机,轮转检测。手机和家电会有。

做事件机和计时器,根据按键状态和事件调用相应的方法。计算机键盘。

2.计时。

可能需要按毫秒单位不断累加计时。  有的弓箭落点有地面图标提示,按下,不断前移。

3.根据当前计时数值折算距离。

距离=速度X时间。 速度可以取固定值;常量。时间就是上边的计时;变量。距离就是射程;结果。

百战天虫绳索没有落点提示吧。好像没有。


4.地图障碍物影响,属于线性计算吧。障碍物导致绳索轨迹不是单一直线。另作模块。

5.多种技能蓄力的处理。


原理,不是规则。

74

主题

1046

帖子

1429

积分

金牌会员

Rank: 6Rank: 6

积分
1429
QQ
发表于 2011-6-8 17:39:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

这已经是程序的工作了。
1蓄力条:首先判断空格键是否按下,按下之后有个蓄力值A和变量i或蓄力条元件宽度用于计算蓄力值,a=a+i;可设定按下多少秒蓄力的增减来回。判断空格按下达到一定秒数蓄力达到最高值时i=-i;同样蓄力值达到最小值时再次判断i=-i;
        当空格键抬起时判断此时的蓄力值A、弹弓心中与鼠标或小鸟元件位置的角度B,把蓄力值A和角度B代入抛物线公式,碰撞到物品时根据撞击点离弹弓距离C和蓄力值A,还有小鸟碰撞物体切入的角度计算对物体的作用力和作用方向。
      原理基本上就这样了。个人见解

8

主题

32

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2011-6-9 11:34:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

这个我还是想不到如何表达= =

8

主题

1801

帖子

3450

积分

论坛元老

Rank: 8Rank: 8

积分
3450
发表于 2011-6-9 11:59:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

我不知道他们怎么做的,但按我的理解:就按物理规则来呗
力:  f=形变距离*弹性系数(如果蓄力是按时间算,则把形变距离替换成蓄力时间)
加速度: a=f/小鸟质量
......
这样小鸟的初速度就算出来了,结合出射角就可以计算其运行轨迹。

自己想明白了,规则就很好写了。

0

主题

114

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2011-6-9 12:20:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

详细规则?如果是百战天虫的话你给一个描述,例如:
1、按住X键后,蓄力槽会增涨,每多少毫秒增加1点,最多增加到多少点;到达顶点后会按同样速度倒退回0,如此反复(或者到达多长时间后直接发射)。
2、按一下Y1键则发射角度上扬θ1,最多到90;按一下Y2键发射角度下降θ1,最多到0。
3、蓄力槽值A与发射角度θ与射程X的公式1、弹道飞行的轨迹公式2、子弹飞行速度z。


20

主题

903

帖子

977

积分

高级会员

Rank: 4

积分
977
QQ
发表于 2011-6-9 15:05:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

物理的计算方式,一般来说考虑下面几点

【拖拽】弹性势能(弹性系数*拖拽距离)的计算

【射击】根据弹性势能计算初速度
速度绝对数值由 动能(1/2*质量*速度^2)=弹性势能(弹性系数*拖拽距离),方向和拖拽方向相反,并进行飞行轨迹的向量分解

【飞行】飞行途中的重力加速度效果,以及风力的效果(如果有的话)

【击中】碰撞检测

然后就是不需要符合物理的各种效果了~

1

主题

147

帖子

147

积分

注册会员

Rank: 2

积分
147
发表于 2011-6-10 17:02:00 | 显示全部楼层

Re:类似百战天虫和疯狂小鸟的蓄力射击规则是咋样的呀?

在我的记忆中,疯狂的小鸟不是按照时间蓄力的吧,是按照拉弹弓的距离蓄力

直角坐标系,弹弓只算作一个坐标点o(0,0)
另外设定一个以弹弓为圆心,半径为r的圆形范围,作为有效蓄力范围
玩家松手的一刻,判断玩家触摸点a是否有效蓄力范围内
  是,根据o和a的坐标,计算d=ao之间的距离
  否,根据o和a的坐标,计算d=r
然后根据a、o、d和小鸟预设重量m绘制抛物线



上面这个判断也可以在触摸点a坐标发生变化的时候执行,比如需要提示轨迹线的情况

抛物线具体公式懒得想了(其实因为高中数学还给老师了),另外忘了小鸟重量是否影响飞行高度和飞行距离,有兴趣的可以继续探讨



如果是时间蓄力的话,应该是用按键松开时间a,减去按键按下时间b,来计算蓄力时间t,t的作用等同于前面的d

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 21:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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