我写了一段代码,用于放每个棋子,坐标设置如下:
for(var i=0; i<1; i++){
for(var j=0; j<1; j++){
var node = cc.instantiate(this.starPrefab);
node.parent = scene;
node.x=-194.4+64.8i;
node.y=18.4+59.8j;
}}
**由此可以看到,当i,j都是0时,第一个点的坐标是x=-194.4,y=18.4
在onload里我用的touch坐标代码:
this.chessfield.on(cc.Node.EventType.TOUCH_END, function(event){
//var cpos=event.getLocation(); //点击第一个点的位置,x坐标是52
var cpos=this.node.convertToWorldSpaceAR(event.getLocation()); //点击第一个点的位置,x坐标是199.8
var x1=cpos.x;
var y1=cpos.y;
x1=x1.toFixed(1);
y1=y1.toFixed(1);
var cpos1=this.node.convertToWorldSpaceAR(aa[0,0].position); //可以出数字x= -46.6
var x2=cpos1.x;
var y2=cpos1.y;
x2=x2.toFixed(1);
y2=y2.toFixed(1);
this.scoreDisplay.string = 'pos: ’ + x1 + ‘/’ + x2;
}, this);
现在问题来了:
第一段代码我设置第一个棋子的坐标是x=-194.4
我touch点击第一个棋子得到的世界坐标是x=199.8
最后一段代码我转换第一个棋子的坐标成为世界坐标,结果是x=-46.6
三个都不相同,这到底是怎么回事?怎么让我touch得到的坐标,和我第一个棋子本身的坐标相同?
谢谢大家!