游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2959|回复: 9

怎么用TV3D检验鼠标是否点在一个物体上?

[复制链接]

21

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2006-6-30 15:33:00 | 显示全部楼层 |阅读模式
怎么用TV3D检验鼠标是否点在一个物体上?
TvActor

3

主题

508

帖子

508

积分

高级会员

Rank: 4

积分
508
发表于 2006-6-30 15:56:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

TV3D里有个例子,   ShootMontain你自己去看一下, 就是在一个雪山里射击敌人, 但程序只是个示范, 我研究过那个程序, 作者的意图并不想我们学会那个技术, 或者说他不想直接告诉我们部分代码设计方法, 而是要我们自己摸索,否则TV3D的发明人就是给你一个设计好的游戏结构, 这个程序有一个严重的错误, 如果会修改那你的TV3D就学会一半了, 这个过程之前梦幻战争的作者也经历过, 不过我现在已经搞明白了, 这个技术用在新游戏五星勋章里.

判断设计方法是:
If ENEMY(N).Collide(Vector(PosX, PosY, PosZ), Vector(PosX + Cos(ang) * 2000, PosY + Sin(angy) * 2000, Sin(ang) * 2000 + PosZ), TV_TESTTYPE_MDL_HITBOXES) = True Then

2000是判断的范围,  如果地图是4096 X 4096 的那我只能在2000点以内打中敌人.
ENEMY(N)是敌人, N是敌人的数量, 当然这还要很多程序配合.
PosX, PosY, PosZ 分别是敌人的行列坐标和离地高度.

19

主题

329

帖子

329

积分

中级会员

Rank: 3Rank: 3

积分
329
发表于 2006-7-1 13:05:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

TV3D里还有个例子,你的鼠标指向mdl的哪个部位都把那个部位的名称显示出来。TV3D不错!

3

主题

508

帖子

508

积分

高级会员

Rank: 4

积分
508
发表于 2006-7-1 16:09:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

就是用Collide这个函数。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-4 01:37:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

tv3d确实不错,正在等待tv3d 6.5(6.2不能满足我现在的一个工程的要求)
暂时使用的OgreDotnet,但是由于托管到非托管的障碍编写起来十分麻烦,所以准备换成Axiom引擎了~
这个函数看来跟OGre的Ray类型差不多了,发射一个射线,看看途中碰到了哪些东西~

3

主题

508

帖子

508

积分

高级会员

Rank: 4

积分
508
发表于 2006-7-4 08:54:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

还有另外一个用法, 判断障碍物.

lineend = Camera.GetPosition
   
    If Mesh.Collision(linestart, lineend, TV_TESTTYPE_ACCURATETESTING) = True Then
        Camera.SetPosition linestart.x, linestart.y, linestart.z
    Else
        Camera.SetPosition lineend.x, lineend.y, lineend.z
    End If
   
    If TANK.Collide(linestart, lineend, TV_TESTTYPE_BOUNDINGBOX) = True Then
         Camera.SetPosition linestart.x, linestart.y, linestart.z
    End If

MESH是自己(摄像机,自己位置)
TANK是障碍物(坦克,墙等)

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2006-7-4 10:13:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

使用鼠标拾取函数,MousePicking 在那个类里不记得了,自已找下吧

21

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2006-7-4 10:47:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

哎,这里天才太多了……

32

主题

232

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
发表于 2007-1-31 15:35:00 | 显示全部楼层

Re:怎么用TV3D检验鼠标是否点在一个物体上?

我也在等待6.5

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-2-27 09:06:00 | 显示全部楼层

Re: 怎么用TV3D检验鼠标是否点在一个物体上?

VC SDK的要复杂一点点,涉及到指针。
VB的就很简单了,mousepicking函数就可以了,但是先要定义一个碰撞result量先,具体记不清了,自己看一下VB sample里面那个关于鼠标碰撞的例子,就是那个5个坦克的应该就行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 13:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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