2025-04-23

IOS開源項目–拖拽遊戲。學過瞭ios手勢,我們來通過手勢綜合起來做一個小遊戲,效果如下
這裡寫圖片描述
核心代碼:
屏幕觸點的獲得

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *t = [touches anyObject];
    CGPoint p = [t locationInView:self.view];

  }

點擊手勢中,判斷在左視圖還是右視圖,同時處理對應的數據 加或減

- (void)tapAction:(UITapGestureRecognizer *)tap{
    if ([tap.view.superview isEqual:self.leftView]) {
        //把點擊到的view刪除
        [tap.view removeFromSuperview];
        self.leftLabel.text = @(self.leftView.subviews.count).stringValue;
    }else{
        //把點擊到的view刪除
        [tap.view removeFromSuperview];
        self.rightLabel.text = @(self.rightView.subviews.count).stringValue;
    }

}

觸控結束時,講拖拽視圖的父視圖轉換為左右視圖。更新左右視圖裡的子視圖數據

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    if (CGRectContainsPoint(self.leftView.frame, self.dragIV.center)) {
        //得到相對於self.view的點
        CGPoint oldCenter = self.dragIV.center;
        //把相對於self.view的點轉換成相對於leftView的點
        CGPoint newCenter = [self.view convertPoint:oldCenter toView:self.leftView];
        [self.leftView addSubview:self.dragIV];

        self.dragIV.center = newCenter;

        self.leftLabel.text = @(self.leftView.subviews.count).stringValue;
        }
      }

詳細源代碼及圖片就自行github下載:
https://github.com/lee727n/drag-game

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *