$screenTouchCount = 0; $Player1TouchUp = true; $Player1TouchDown = false; $Player1TouchMoving = false; function Player1Map::onTouchDown(%this, %modifier, %worldPosition, %clicks) { if ($Player1TouchDown) { // visual display of touch point %tempFinger = new t2dStaticSprite() { imageMap = "movementImageMap"; }; %vector = t2dVectorSub(%worldPosition, Player1Image.getPosition()); %targetRotation = mRadToDeg(mAtan(%vector.y, %vector.x)) + %this.rotationOffset; Player1Image.rotateTo(%targetRotation, 400, true, false, true, 0.1); Player1Image.moveTo(%worldPosition, 15, true, false, false, 0.1); } else { // visual display of touch point %tempFinger = new t2dStaticSprite() { imageMap = "nomovementImageMap"; }; } %tempFinger.setSize(5 SPC 5); %tempFinger.addToScene(sceneWindow2D.getSceneGraph()); %tempFinger.setPosition(%worldPosition); %tempFinger.setLifetime(0.8); //set starting point of mouse event $screenTouchStartingPoint[$screenTouchCount] = new ScriptObject(){ point = %worldPosition; }; } function Player1Map::onTouchDragged(%this, %modifier, %worldPosition, %clicks) { if ($Player1TouchDown) { // visual display of touch point %tempFinger = new t2dStaticSprite() { imageMap = "movementImageMap"; }; Player1Image.moveTo(%worldPosition, 15, true, false, false, 0.1); %vector = t2dVectorSub(%worldPosition, Player1Image.getPosition()); %targetRotation = mRadToDeg(mAtan(%vector.y, %vector.x)) + %this.rotationOffset; Player1Image.rotateTo(%targetRotation, 400, true, false, true, 0.1); } else { // visual display of touch point %tempFinger = new t2dStaticSprite() { imageMap = "nomovementImageMap"; }; } %tempFinger.setSize(5 SPC 5); %tempFinger.addToScene(sceneWindow2D.getSceneGraph()); %tempFinger.setPosition(%worldPosition); %tempFinger.setLifetime(0.8); } function Player1Map::onTouchUp(%this, %modifier, %worldPosition, %clicks) { $screenTouchStartingPoint[$screenTouchCount].Delete(); $screenTouchCount++; if($Player1TouchDown) { Player1Image.moveTo(%worldPosition, 15, true, false, false, 0.1); %vector = t2dVectorSub(%worldPosition, Player1Image.getPosition()); %targetRotation = mRadToDeg(mAtan(%vector.y, %vector.x)) + %this.rotationOffset; Player1Image.rotateTo(%targetRotation, 400, true, false, true, 0.1); $Player1TouchMoving = false; $Player1TouchDown = false; $Player1TouchUp = true; } } function Player1Image::onTouchDown(%this, %modifier, %worldPosition, %clicks) { if (!isObject(sceneWindow2d)) return; if($Player1TouchMoving) { %this.moveTo(%worldPosition, 1500, true, false, false, 0.1); } $Player1TouchDown = true; $Player1TouchUp = false; $Player1TouchMoving = true; %this.moveTo(%worldPosition, 15, true, false, false, 0.1); // %vector = t2dVectorSub(%worldPosition, Player1Image.getPosition()); // %targetRotation = mRadToDeg(mAtan(%vector.y, %vector.x)) + %this.rotationOffset; // Player1Image.rotateTo(%targetRotation, 400, true, false, true, 0.1); %tempFinger = new t2dStaticSprite() { imageMap = "movementImageMap"; }; %tempFinger.setSize(5 SPC 5); %tempFinger.addToScene(sceneWindow2D.getSceneGraph()); %tempFinger.setPosition(%worldPosition); %tempFinger.setLifetime(0.8); } function Player1Image::onTouchDragged(%this, %modifier, %worldPosition, %clicks) { if (!isObject(sceneWindow2d)) return; $Player1TouchUp = false; $Player1TouchMoving = true; if($Player1TouchDown) { %this.moveTo(%worldPosition, 15, true, false, false, 0.1); %vector = t2dVectorSub(%worldPosition, Player1Image.getPosition()); %targetRotation = mRadToDeg(mAtan(%vector.y, %vector.x)) + %this.rotationOffset; Player1Image.rotateTo(%targetRotation, 400, true, false, true, 0.1); %tempFinger = new t2dStaticSprite() { imageMap = "movementImageMap"; }; %tempFinger.setSize(5 SPC 5); %tempFinger.addToScene(sceneWindow2D.getSceneGraph()); %tempFinger.setPosition(%worldPosition); %tempFinger.setLifetime(0.8); } } function Player1Image::onTouchUp(%this, %modifier, %worldPosition, %clicks) { $Player1TouchDown = false; $Player1TouchUp = true; // %this.moveTo(%worldPosition, 15, true, false, false, 0.1); }