1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { _decorator, Component, EventTouch, Label, Node, UITransform, Vec2, Vec3 } from 'cc';
- const { ccclass, property } = _decorator;
- @ccclass('test')
- export class test extends Component {
- @property(Node) bg:Node = null;
- @property(Node) img:Node = null;
- @property(Node) img_point:Node = null;
- @property(Node) btn_rotate:Node = null;
- protected is_rotate:boolean = false;
- protected anchor_point:Vec2 = new Vec2(0.5,0.5)
- start() {
- this.img.on(Node.EventType.TOUCH_END, (et:EventTouch)=> {
- let p = new Vec3(et.getUILocation().x,et.getUILocation().y)
- let n_p = this.img.getComponent(UITransform).convertToNodeSpaceAR(p)
- // console.log('n_p',n_p)
- let img_position_x = n_p.x
- let img_position_y = n_p.y
- this.img_point.position = new Vec3(img_position_x, img_position_y, 1)
- this.anchor_point = new Vec2(0.5,0.5)
- this.img.getComponent(UITransform).setAnchorPoint(this.anchor_point)
- let img_contentSize = this.img.getComponent(UITransform).contentSize
- let anchor_point_x = (img_contentSize.width / 2 + n_p.x) / img_contentSize.width
- let anchor_point_y = (img_contentSize.height / 2 + n_p.y) / img_contentSize.height
- this.anchor_point = new Vec2(anchor_point_x, anchor_point_y)
- console.log('当前锚点=',this.anchor_point)
- },this)
- this.btn_rotate.on(Node.EventType.TOUCH_END, ()=> {
- if(this.is_rotate) {
- // 归位
- this.btn_rotate.children[0].getComponent(Label).string = '旋转'
- this.img.angle = 0
- this.anchor_point = new Vec2(0.5,0.5)
- this.img_point.position = new Vec3(0, 0, 1)
- } else {
- // 旋转
- this.btn_rotate.children[0].getComponent(Label).string = '归位'
- this.img.angle = 10
- }
- this.img.getComponent(UITransform).setAnchorPoint(this.anchor_point)
- this.is_rotate = !this.is_rotate
- },this)
-
- }
- }
|