gpt4 book ai didi

ios - 激活/停用代码

转载 作者:行者123 更新时间:2023-11-28 06:15:11 27 4
gpt4 key购买 nike

试图在 if whiteDotDist < centerRadius - whiteDotRadius 时获取代码执行它下面的所有代码都是事件的,并且当它下面的代码被执行时它再次变为非事件状态直到if whiteDotDist < centerRadius - whiteDotRadius。再次被执行。有点像一个循环,所以你必须从中心到 smallDot 继续往回走。很难通过计算机解释。更新它给我错误'二元运算符'<'不能应用于'CGFloat'和'Double'类型的操作数

@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translation(in: self.view)
if let view = recognizer.view {
view.center = CGPoint(x:view.center.x + translation.x,
y:view.center.y + translation.y)
}
recognizer.setTranslation(CGPoint.zero, in: self.view)


let centerRadius = 37.5
let whiteDotRadius = 23.5

let whiteDotDist = hypot(center.center.x - whiteDot.center.x, center.center.y - whiteDot.center.y - whiteDot.center.y)

if whiteDotDist < centerRadius - whiteDotRadius {
resetTimer() }
if (whiteDot.frame.contains(smallDot.frame) && smallDot.image != nil) {
addOne += 1
score.text = "\(addOne)"

resetTimer()

timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(SecondViewController.startTimer), userInfo: nil, repeats: true)

smallDot.center = spawnRandomPosition()
}
}
}

enter image description here

最佳答案

检查以确保:

  1. 所有 View 都有相同的父 View (因此它们都在相同的坐标系中)

  2. 框架紧紧围绕着圆圈。把center、whiteDot、smallDot的背景色改成红色,发个图

即使您这样做,您的代码也会检查边界矩形是否在彼此内部,因此它可能看起来像小点在白点之外(如果它在角落),但边界框被白点的框架包围.

如果您想检查圆圈(不是边界框)是否在彼此内部,请获取中心之间的距离并确保它在(外半径 - 较小的点半径)内。

伪代码

   let centerRadius = 100 // set this to radius of center circle
let whiteDotRadius = 10 // set this to whiteDot radius

let whiteDotDist = hypotf(center.center.x - whiteDot.center.x, center.center.y - whiteDot.center.y)

if whiteDotDist < centerRadius - whiteDotRadius {
// whiteDot is inside center
}

关于ios - 激活/停用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45360172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com