找回密码
 点一下
查看: 882|回复: 11

怎样做出CS射击系统?

[复制链接]
发表于 2013-11-20 20:57:10 来自手机 | 显示全部楼层 |阅读模式
灵感来源:CS射击游戏
视角方面:第一人称视角.(这个会弄)
实验单位:人族的劫掠者
疑问:就是用鼠标左键点任何一个地方,单位就会发炮弹攻击那个地点.而且是点击一次,单位攻击一次.如果点空中,单位也会发炮弹打空中.点陆地.就会打陆地...如果有敌人在旁边,则会伤害到敌人..单位组选取伤害.
打空中的话,炮弹的轨道也会因目标点的方向和高度而改变..

参考:鼠标左键攻击这个系统在星际2编辑器做的星际1人族战役中有一个类似闯关的图用到过..不过看不懂呀....
发表于 2013-11-20 21:40:20 | 显示全部楼层
设攻击者为a,子弹为b,目标为v,记录相邻两个时刻t0,t1,和他们的位置:Da0,Db0,Dv0,Da1,Db1,Dv1
设两点K1,K2直线表示方法为L(K1,K2)
假设子弹速度远超过目标速度,满足两个个条件即可:
1、t0,b在a和v之间(cos∠abv < 0) 且 t1,v在a和b之间(cos∠avb < 0) (只考虑平面)
2、点Dv0到直线L(Da0,Db0)距离 < v的半径 且 点Dv1到直线L(Da1,Db1)距离 < v的半径 (考虑空间)

点评

我表示....这个答案对我来说很有压力呀......  详情 回复 发表于 2013-11-20 22:27
我表示....这个答案对我来说很有压力呀......  详情 回复 发表于 2013-11-20 22:18
回复

使用道具 举报

 楼主| 发表于 2013-11-20 22:18:33 来自手机 | 显示全部楼层
wyf 发表于 2013-11-20 21:40
设攻击者为a,子弹为b,目标为v,记录相邻两个时刻t0,t1,和他们的位置:Da0,Db0,Dv0,Da1,Db1,Dv1
...

我表示....这个答案对我来说很有压力呀......
回复

使用道具 举报

 楼主| 发表于 2013-11-20 22:27:25 来自手机 | 显示全部楼层
wyf 发表于 2013-11-20 21:40
设攻击者为a,子弹为b,目标为v,记录相邻两个时刻t0,t1,和他们的位置:Da0,Db0,Dv0,Da1,Db1,Dv1
...

我表示....这个答案对我来说很有压力呀......

点评

wyf
其实就是数学题啊  详情 回复 发表于 2013-11-20 22:52
回复

使用道具 举报

发表于 2013-11-20 22:52:30 | 显示全部楼层
星际迷 发表于 2013-11-20 22:27
我表示....这个答案对我来说很有压力呀......

其实就是数学题啊

点评

就是有的地方看不懂,比如设攻击者为a.子弹为b. a是单位变量吗?. b是整数变量吗?.  详情 回复 发表于 2013-11-21 07:09
回复

使用道具 举报

 楼主| 发表于 2013-11-21 07:09:42 来自手机 | 显示全部楼层
wyf 发表于 2013-11-20 22:52
其实就是数学题啊

就是有的地方看不懂,比如设攻击者为a.子弹为b.
a是单位变量吗?.
b是整数变量吗?.

点评

wyf
只不过用来简写的代号罢了,还是看你怎么设置呗  详情 回复 发表于 2013-11-21 10:57
回复

使用道具 举报

发表于 2013-11-21 10:57:48 | 显示全部楼层
星际迷 发表于 2013-11-21 07:09
就是有的地方看不懂,比如设攻击者为a.子弹为b.
a是单位变量吗?.
b是整数变量吗?.

只不过用来简写的代号罢了,还是看你怎么设置呗
回复

使用道具 举报

发表于 2013-11-21 12:18:42 | 显示全部楼层
本帖最后由 空人 于 2013-11-21 11:46 编辑

设目标单位坐标(x1,y1,z1),飞弹坐标(x2,y2,z2),预期的轰击距离是l,只要满足(x2-x1)^2+(y2-y1)^2+(z2-z1)^2<=l^2就好了
以上情况适用于忽略单位半径、形状,飞弹半径、形状的情况下考虑单位半径的话设目标单位坐标(x1,y1,z1),半径R1,飞弹坐标(x2,y2,z2),半径R2,预期的轰击距离是l,满足(x2-x1)^2+(y2-y1)^2+(z2-z1)^2<=(l+R1+R2)^2
回复

使用道具 举报

发表于 2013-11-28 21:44:58 | 显示全部楼层
楼上诸位,这个需要自己计算吗?貌似使用原本的系统就可以满足要求了吧。我觉得楼主主要是想知道怎样响应点击鼠标事件来发射一枚子弹到鼠标点击的地方,至于子弹如何产生效果,其实使用自带的飞弹系统来做就可以了。甚至说,对于枪械子弹来说,完全可以做成即时伤害,不需要真有个子弹吧(当然为了追求子弹乱飞的特效也是可以用飞弹的)。

点评

飞弹系统在哪里找到呀........ 要是我点击的是空中呢?因为我做的是CS图.单位能够往空中开枪的.....用飞弹系统还可以吗?.....  详情 回复 发表于 2013-11-30 19:59
飞弹系统在哪里找到呀........  详情 回复 发表于 2013-11-30 19:57
回复

使用道具 举报

 楼主| 发表于 2013-11-30 19:57:02 来自手机 | 显示全部楼层
yxxiaobin 发表于 2013-11-28 21:44
楼上诸位,这个需要自己计算吗?貌似使用原本的系统就可以满足要求了吧。我觉得楼主主要是想知道怎样响应点 ...

飞弹系统在哪里找到呀........
回复

使用道具 举报

 楼主| 发表于 2013-11-30 19:59:36 来自手机 | 显示全部楼层
yxxiaobin 发表于 2013-11-28 21:44
楼上诸位,这个需要自己计算吗?貌似使用原本的系统就可以满足要求了吧。我觉得楼主主要是想知道怎样响应点 ...

飞弹系统在哪里找到呀........
要是我点击的是空中呢?因为我做的是CS图.单位能够往空中开枪的.....用飞弹系统还可以吗?.....
回复

使用道具 举报

发表于 2013-12-3 11:57:09 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-9-29 18:45 , Processed in 0.037731 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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