- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有
let impulse = CGVectorMake(CGFloat(Constants.impulse), 0)
如何在不创建另一个 CGVector 的情况下得到它的负值?
我正在考虑在 CGVector 上创建一个扩展以拥有一个可以反转它的方法,但我还需要它来创建一个新的 CGVector,而不是覆盖脉冲。
此外,我说 CGVector 是引用类型是否正确?
最佳答案
您可以扩展CGVector
方法:
public extension CGVector {
func horizontalReverse() -> CGVector {
return CGVector(dx:-self.dx,dy:self.dy)
}
}
用法:
var impulse = CGVectorMake(CGFloat(Constants.impulse), 0)
impulse = impulse.horizontalReverse()
在 Swift 中,struct、enum 和 tuple 对象都是值类型,定义为类的对象是引用类型 。值类型数据在分配时被复制,而引用类型数据通过引用传递并指向相同的基础数据。
不用介意 CGVector
的声明来源。在您的情况下,我们有 let 或 var 声明。
根据 The Swift Programming Language :
Constants and variables must be declared before they are used. You declare constants with the let keyword and variables with the var keyword.
let 创建一个常量。一旦你设置了它,你就不能改变它的值。不过,您仍然可以将它添加到其他事物并创建新变量。
var 创建一个变量。所以你可以改变它的值。
关于ios - 获得 CGVector 的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38158039/
希望标题是不言自明的。我确信这是一个简单的答案,但当谈到 Objective-C 时,我有点菜鸟。我正在寻找 NSLog CGVector,因为我想看看 Sprite 的速度是否按应有的速度增加。提前
使用 Sprite Kit 我试图设置一个 SKPhysicsBody 根据给定的角度移动,例如,如果您希望 Sprite 向右移动,您可以指定 1.571 弧度。为了将指定的角度转换为速度,我使用以
我有 let impulse = CGVectorMake(CGFloat(Constants.impulse), 0) 如何在不创建另一个 CGVector 的情况下得到它的负值? 我正在考虑在 C
我很好奇如何使用 if 语句来查看 CGVector 变量是否为 nil,因为对象是这样完成的: if (!object){ //Do This } 但是对于 CGVector 它不是一个对象
搜索 documentation 后,我仍然找不到什么是 CGVector 的合理解释。文档中唯一提到它的次数是在显示它的 typedef 是什么的时候。 struct CGVector { C
我需要使用 CGVector 在两个 SpriteKit 节点之间移动,其长度例如为 100(红色箭头)。 但我想将向量的长度限制为 70,如果它超过 70(绿色箭头)。因此,我需要“削减”红色矢量的
我制作了一个CGVector,它使球员球产生向上的冲动(模拟跳跃)。如果我用我目前拥有的东西运行游戏(下图),它会很好地开始,并且在游戏开始时跳跃会完美地发生。每次记录触摸时,我都试图让球跳跃,但我在
我正在尝试为 cgpoint 和 cgvector 创建一个非常简单的泛型。我只想插入我的变量,并将 x,y 或 dx,dy 乘以 2 func dblPt(inout point: T){
我正在用文字做很多定位和动画的事情,它们占用了大量的空间并且由于冗长而变得不可读。 我想做的是把这个翻过来 var xy = CGPoint(x: 100, y: 100) 进入这个:
X代码6 B6 尝试创建一个枚举,该枚举可以通过像这样评估 CGVector 的某些逻辑来创建: enum Direction:Int, Printable{ case None = 0
这适用于指针: CGVector* v = {1, 2}; CGPoint* p = (CGPoint*)v; 这里它们不是指针,所以这是行不通的,但这是典型的情况: CGVector v = {1,
在我的游戏中,我需要比较碰撞时的 2 个速度。两种速度都采用 CGVector(dx: , dy:) 格式。但是 Swift 3 不允许我使用“>”和“ maxSpeed {
我试图了解如何在 Swift 中创建 Vector,因为当我执行 CGVectorMake() 时,它告诉我将 dx 和 dy(导数)作为 CGFloat 传递。如何创建仅包含该信息的向量(线)? 谁
正在运行 SKAction 方法,但语法存在一些问题。我从头开始,按照 Xcode 8 代码完成告诉我的方式填写了所有内容,但仍然没有运气。 Cannot invoke 'moveDistance'
我在 Swift 中使用 Xcode 6 时收到错误消息“Operand of postfix '!'应该有可选类型;类型是“CGVector””在我的代码中说我必须删除一个!但是,当我这样做时,出现
我是一名优秀的程序员,十分优秀!