百思不得其解
secondlife吧
全部回复
仅看楼主
level 9
pkgoldok 楼主
可以在一个板子上,检测到鼠标的点击位置。 这样的话,板子上贴个大头像,点不同的部位,就可以有不同的反馈。那是很有趣的事。这是怎么实现的呢?
这个孔明灯做的真不错
2013年09月13日 16点09分 1
level 7
很简单
default
{
touch_start(integer pos_detected)
{
integer i = 0;
for(; i<pos_detected; ++i)
llWhisper(0, "Pos clicked: " + (string)llDetectedTouchPos(i));
}
}
返回触摸位置 然后判断位置 做出相应的事件4
2013年09月14日 00点09分 2
llDetectedTouchPos 返回的是全局坐标 需要连接一个物体返回另一个坐标 然后两个全局坐标对比得出触摸的相对位置,我也去看了那个牌子 牌子后面还有一个连接的小板 因该就是返回主物体位置坐标的.这家伙还是很有创意的.
2013年09月14日 11点09分
level 13
学习了,我这有个和这类似功能的脚本,不过是用list实现的,相对复杂了一些。
2013年09月14日 15点09分 3
[玫瑰]
2013年09月14日 16点09分
level 10
@len0112
list BUTTONS_STRIDED_LIST = [
<0.0, 1.0, 0.0>, <0.33, 0.66, 0.0>, "Button", "中华家园1号:landmark....",
<0.33, 1.0, 0.0>, <0.66, 0.66, 0.0>, "Button", "中华家园2号:landmark...",
<0.66, 1.0, 0.0>, <1, 0.66, 0.0>, "Button", "中华家园3号:LM..",
<0.0, 0.66, 0.0>, <0.33, 0.33, 0.0>, "Button", "中华家园4号:LM....",
<0.33, 0.66, 0.0>, <0.66, 0.33, 0.0>, "Button", "中华家园5号:LM......",
<0.66, 0.66, 0.0>, <1, 0.33, 0.0>, "Button", "中华家园6号:LM...",
<0.0, 0.33, 0.0>, <0.33, 0.0, 0.0>, "Button", "中华家园7号:LM..",
<0.33, 0.33, 0.0>, <0.66, 0.0, 0.0>, "Button", "中华家园8号:LM....",
<0.66, 0.33, 0.0>, <1, 0.0, 0.0>, "Button", "中华家园9号:LM...."];
1÷1=1
1÷2=整数
1÷3=无限循环
1÷4=整数(根据单位“一”的大小而可以改变商的数值)
1÷5=整数
1÷6=无限循环
1÷7=无限循环
1÷8=整数(如“4”)
1÷9=无限循环
由此可见:
只能——1、2、4、5、8适用于LIST(如果你想要“十分精确”的话)。
而美羊羊的方法和LIST构造比,就好比“自动档”和“手动档”的区别~
[乖]I
2013年09月14日 16点09分 4
level 10
横纵坐标才各3“均”分,凑合用LIST还是可以的~
要是30、300均分,不免会出现“点错位”的情形~I
2013年09月14日 16点09分 5
我这个方法也不好 板子的旋转会影响到坐标,所以必须板子摆正.如果考虑进旋转对坐标的影响,这个数学问题让人脑袋大.对于只有初中数学水平的我来说 只想说一句 林登卧槽. 你那个脚本是可以自动返回物体的尺寸设置单位一和商的嘛,
2013年09月15日 04点09分
level 9
pkgoldok 楼主
感谢各位的帮助
我再加一个方法
llDetectedTouchUV
integer touchFace = llDetectedTouchFace(0);
vector touchUV = llDetectedTouchUV(0);
float touchU = touchUV.x;
float touchV = touchUV.y;
touchUV.x, touchUV.y 是百分比,比较好计算。先找到0,0 和0.9,09两个顶点,然后就可以操作了。I
2013年09月15日 15点09分 6
level 6
利用UV实现最好.
//代码如下
integer numberOfRows = 16;//竖多少格
integer numberOfColumns = 16;//横多少格
default
{
state_entry()
{
llSetTexture("591e92d8-41b9-b0b9-7974-078d36532b5b",ALL_SIDES);
}
touch_start(integer total_number)
{
vector touchUV = llDetectedTouchUV(0);
integer columnIndex = llFloor(touchUV.x * numberOfColumns);
integer rowIndex = llFloor(touchUV.y * numberOfRows);
integer cellIndex = (rowIndex * numberOfColumns) + columnIndex;
llSay(0, "横坐标:"+(string)columnIndex+" 坐标:"+(string)rowIndex+" 当前点击格子:"+ (string)cellIndex);
}
}
//请复制代码到游戏中查看实际效果.I
2013年09月16日 05点09分 9
好东西 收藏了 哈哈
2013年09月16日 10点09分
level 6
比如1楼的图片,横竖都是3格,只需要修改上面代码全局变量横竖都为3.那么自然就找到对应位置了.
2013年09月16日 05点09分 10
1