小编Fat*_*tie的帖子

iOS Swift didBeginContact未被调用

在过去的两天里,我一直在努力争取两个SKSpriteNodes注册冲突并唤起他们didBegin#contact.

我为两个对象设置了位掩码' categoryBitMask',' contactTestBitMask'和' collisionTestBitMask'.

我也设置' dynamic'属性为' true'

initPhysics() 似乎建立了physicsWorld好.

我所期待的didBegin#Contact就是所谓的,但事实并非如此

//Set up Physicsbody bit masks
let playerCarBitMask: UInt32 = 0x1 << 1
let slowCarBitMask: UInt32 = 0x1 << 2



//initPhysics
func initPhysics() {
    println("(((((((((((((( Initiating Physicsbody ))))))))))))))")
    self.physicsWorld.contactDelegate = self
    self.physicsWorld.gravity = CGVector.zeroVector

    println("self.physicsWorld.contactDelegate = \(self.physicsWorld.contactDelegate)")

}

//setupPlayer
func setupPlayer() {

    car = SKSpriteNode(imageNamed: "redCarUp")
    car.setScale(2.0)
    car.position = CGPoint(x: 800, y: 400)
    car.zPosition = 100
    car.name = "car"

    gameNode.addChild(car)

    let …
Run Code Online (Sandbox Code Playgroud)

collision-detection sprite-kit skphysicsbody skphysicsworld swift

8
推荐指数
2
解决办法
6247
查看次数

是否有可能在尺寸和质量方面进行逼真的n体太阳系模拟?

重要提示:这个问题与"PhysX" 完全没有关系,"PhysX"是一个计算机游戏物理系统(对于街机游戏中的物理学有用,如球类游戏等); PhysX是Unity3D和其他游戏引擎内置的系统; PhysX在这里完全无关紧要.

////////////////////更新(先读到底部)/////////////////////

我一直在记录值并搜索确切问题的位置,我想我找到了它.我的代码中有这样的东西

Velocity += Acceleration * Time.deltaTime;
position += Velocity * Time.deltaTime;
Run Code Online (Sandbox Code Playgroud)

加速度就像0,0000000000000009 ..现在.当代码流动时,速度应该增加,浮动没有问题.但是在开始时,地球的初始位置是(0,0,23500f)你可以在我最后给出的图表中看到这一点.

那么现在当我将速度*timedelta(此时类似于0,00000000000000005)添加到23500的位置时,它基本上不会添加它.位置仍然是(0,0,23500)不像(0,0,23500.00000000000005),因此地球不移动,因此加速度不会改变.

如果我将地球的初始位置设置为0,0,0并且仍然将加速度设置为0.0000000000000000009以使其位置为(0,0,23500)然后"ADDS"速度*timedelta.它变得类似于(0,0,000000000000000000005)并且继续增加.当float为0时,添加这么小的值没有问题.但是如果浮点数类似于23500,那么它就不会增加小值.

我不知道这是完全统一的问题还是c#的漂浮.

这就是为什么我不能让它与小值一起工作.如果我能克服这一点,我的问题将得到解决.

////////////////////////////////////////////////// /////////////////////////////

我一直在开发n体植物以模拟我们的太阳系,因此我一直在收集数据以使其尽可能逼真.但是数据大小存在问题.我搜索了每一点互联网,我找不到人们如何克服这一点的单一解释.(如果是这样的话)所以我在这里尝试拍摄.

因此,为了保持行星之间的距离,半径和"质量"的比例,我创建了一个excel文件来计算所有数据.(因为有人为什么会把"地球的质量如果有"那个"半径图"在互联网上?)我将把ss作为附件.它基本上"标准化"或换句话说"缩放"行星的每个属性到给定的参考.在这种情况下,我把参考作为"地球的半径".

我团结一致,你知道,你不能在统一中使用"太大"或"太小"的价值观.所以我不得不缩小太阳能系统,"很多!"

因此,我使用牛顿万有引力定律,即F = GMm/r ^ 2,使其变得简单,我直接计算a = GM/r ^ 2,对于来自所有其他物体的给定物体.

因此,地球的"朝向太阳"的重力加速度的实际值大约是0,000006 km/s ^ 2,这在统一的工作中甚至是非常小的值,但它可以工作.然而,为了获得这个值,1我需要将地球的半径(比例)设置为6371单位,并将太阳比例设置为696,342 !,这对于将其统一起来来说太大了.

所以我说,让地球的半径为1,以统一为单位.因此,当半径改变时,一切都会改变,质量,距离......我保持行星的密度,并用新半径计算新体积的质量.所有计算都在附件中.

所以事实是,当我把地球的半径变为1时,对太阳的引力加速就像0,0000000000009那样小得可笑.当然,Unity不会使用这个值.

所以,如果我改变地球的半径,那么太阳的质量和半径变得非常大,然后再次,我无法使用它.

我不知道其他人如何解决这个问题,他们为解决这个问题做了什么,但正如我从这里看到的那样,看起来不可能对太阳系进行逼真的n体模拟.(至少统一)

所以我需要有10个代表来发布图片-_-,我会给出链接. http://berkaydursun.com/solar_system_simulator/data.PNG 另外一个目录是使用n体计算但具有UNREALISTIC值的工作实验太阳系模拟.它工作得很好,它甚至看起来有点接近真实,但不,它没有正确的比率^^你可以在这里测试它,如果你希望http://berkaydursun.com/solar_system_simulator/

编辑:WoW我几乎用"So"开始了每个段落^^

simulation physics game-physics

8
推荐指数
1
解决办法
6079
查看次数

Android中的play-services-base与-basement依赖关系(AAR)

我找到了一个xml文件GoogleDependencyFlurryPlugin.xml

<dependencies>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-base</artifactId><version>8.4+</version></dependency>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-basement</artifactId><version>8.4+</version></dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

确实是一个xml文件GoogleDependencyPlayGameServicesPlugin.xml

<dependencies>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-games</artifactId><version>8.4+</version></dependency>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-plus</artifactId><version>8.4+</version></dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

现在,前一个文件只有一个点

play-services-base>或<play-services-basement

这似乎造成了一个巨大的问题.AndroidJavaException:java.lang.NoSuchMethodError:一旦在设备上运行.

Android专家,如果你有"基地",你必须有 "地下室"......或者反之亦然

事实上,WRT游戏服务 - 游戏或游戏服务 - 加上,或许其中一个/两个在某种程度上(或相反?)基地/地下室?

android unity-game-engine maven prime31 aar

8
推荐指数
1
解决办法
4698
查看次数

Unity3D,从Unity.UI的Panel构建PNG?

想想Canvas你可能拥有的任何Unity.UI .

想象一下PanelCanvas上的一个典型.说它恰好包含一些图像,也许是一些文本等等.

如果您可以将该面板(仅面板)转换为屏幕截图:Texture2D或PNG,将会非常方便.

我唯一能想到的就是在屏幕上使用ReadPixels和搞清楚问题的区域Panel(实际上这非常棘手); 并且仅当面板恰好是正方形而不是以一定角度旋转时才有效.

您认为,应该有一种方法来渲染一个Panel,或者至少一个整个画布?我一无所获.

在此输入图像描述

在此输入图像描述

在示例中,将粉红色面板设为PNG图像.哎哟.

(显然,如果有人的解决方案仅仅是"整个画布",而不是一个小组,当然即使这是令人钦佩的.)

png unity-game-engine unity3d-ui

8
推荐指数
1
解决办法
4037
查看次数

子类化NSLayoutConstraint,常量的奇异行为

对于你目前正在进行的任何项目,简单地说

  1. 在任何屏幕上放下UIView

  2. 只需添加一个宽度约束(666或其他任何好的),

  3. 将约束的自定义类更改为 Constrainty

  4. 运行应用程序,

在此输入图像描述

这怎么可能?

它是否实际上要求常量的值,"在类初始化之前",还是其他一些?

怎么会发生,怎么解决?

起初,我有两个变量@IBInspectable,我很惊讶,根本没有工作.但后来我将它们改为普通的常量 - 这不起作用!

class Constrainty: NSLayoutConstraint {

    let percentageWidth: CGFloat = 77 // nothing up my sleeve
    let limitWidth: CGFloat = 350

    override var constant: CGFloat {

        get { return teste() }
        set { super.constant = newValue }
    }

    func teste()->CGFloat {

        print("\n\n HERE WE GO \(percentageWidth) \(limitWidth) \n\n")

        if let sw = (firstItem as? UIView)?.superview?.bounds.width {

            let w = sw * ( percentageWidth / 100.0 )
            let r …
Run Code Online (Sandbox Code Playgroud)

ios nslayoutconstraint

8
推荐指数
2
解决办法
324
查看次数

运行循环/ drawRect中的神秘"渐进式减速"问题

这是一个真正的谜.

想象一下,您正在进行在屏幕外绘制复杂图像的传统过程(CGLayer),并且您在绘制时间歇性地将图像更新到屏幕上.

如您所知,执行此操作的方法是:在后台运行大型绘图过程,并根据需要调用setNeedsDisplays的前景,从而更新图像.这是微不足道的,可以通过两行代码实现.

但是,当你这样做时,会出现一个神秘的问题:每个绘图周期所花费的时间,每次都会增加,变得无法使用.此外,时间可能不规律地变化.

这是一个已知的iOS错误,还是?谁看过这个吗?

这是一个非常简单,非常容易理解的应用程序,可以解决问题:

http://www.fileswap.com/dl/p8lU3gAi/stepwiseDrawingV2.zip.html

输出示例如下.

有谁知道为什么会这样?操作系统的行为非常奇怪.

后来 ...... FELZ已经找到了令人震惊的解决方案.Felz副本的CGLayer一次每一轮.这完全阻止了这种奇怪的行为.

然而,对于究竟发生了什么仍然没有真正清楚的理解:因此从字面上看,当奇怪的问题出现时,时间在哪里?

这是一个很长的输出示例......

请注意,您有时会得到一个"双重奇异"的结果,如下所示:它表现出"正常"奇怪的行为:每次都会增加时间.然而,偶尔会有几轮时间"非常快",然后返回.怪啊?此外,如果您在模拟器上运行,请快速单击Mac上不相关的应用程序,以获得"更奇怪"的结果.

尽管费尔兹给出了一个完美的工作答案,但实际的机制仍然是一个谜.

:26:56.697 stepwiseDrawing[5334:1a03] time difference was     0
:26:56.707 stepwiseDrawing[5334:1a03] time difference was    10
:26:56.717 stepwiseDrawing[5334:1a03] time difference was    10
:26:56.744 stepwiseDrawing[5334:1a03] time difference was    27
:26:56.771 stepwiseDrawing[5334:1a03] time difference was    27
:26:56.807 stepwiseDrawing[5334:1a03] time difference was    37
:26:56.829 stepwiseDrawing[5334:1a03] time difference was    22
:26:56.864 stepwiseDrawing[5334:1a03] time difference was    35
:26:56.891 stepwiseDrawing[5334:1a03] time difference was    28
:26:56.936 stepwiseDrawing[5334:1a03] time difference was    45 …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa drawrect ios

7
推荐指数
1
解决办法
1944
查看次数

你可以在GCD/dispatch_async中使用cancel/isCancelled吗?

我一直在想,你能用你用GCD推出的线程取消/ cancelAllOperations/.isCancelled吗?

目前,我只使用布尔值作为标志来取消后台进程.

假设您希望在后台进行大量处理,同时保持UI响应,以便您可以捕获取消按钮(或动画显示处理器工作的动画).这是我们如何做到的......

@interface AstoundingView : UIView
    {
    BOOL    pleaseAbandonYourEfforts;
    blah
    }
@implementation AstoundingView
//
// these are the foreground routines...
// begin, abandon and all-done
//
-(void)userHasClickedToBuildASpaceship
    {
    [YourUIStateMachine buildShip];
    [self procedurallyBuildEnormousSpaceship];
    }
-(void)userHasClickedToAbandonBuildingTheSpaceship
    {
    [YourUIStateMachine inbetween];
    pleaseAbandonYourEfforts = false; // that's it!
    }
-(void)attentionBGIsAllDone
    {
// you get here when the process finishes, whether by completion
// or if we have asked it to cancel itself.
    [self typically setNeedsDisplay, etc];
    [YourUIStateMachine nothinghappening];
    }
//
// these are …
Run Code Online (Sandbox Code Playgroud)

iphone multithreading nsoperation grand-central-dispatch ios

7
推荐指数
1
解决办法
1万
查看次数

iTunes Connect 添加 iOS 版本进行测试 - 版本显示为灰色?

该构建已完成处理,但现在被困为“灰色”构建。我以前从未见过这样的事情。这是 iTunes Connect 上的全新问题吗?

在此输入图像描述

完全奇怪...

ios app-store-connect

7
推荐指数
2
解决办法
1316
查看次数

Unity3D Sprite ...但单面?

Unity 优秀的Sprites(Unity 优秀的新精灵),除了其他有价值的优势之外,实际上是双面的。

在 2D 或 3D 用例中,您可以翻转这些小混蛋,仍然可以从后面看到它们——它们是从两侧渲染的。

我也喜欢它们上使用的 unlit 着色器(即 Sprite-Default,而不是 Sprite-Diffuse)。

但是,我需要一个老式的单面Sprite.

幸运的是,您可以免费下载 Unity 使用的优秀着色器的源代码......令人困惑的是,您不能只是在编辑器中打开它,而是在这里和那里查看

涉及廉价威士忌的大量持续努力之后,我对着色器进行了两 (2) 次修改。

  1. 我将文件第一行中的名称更改为“DefaultSingle”而不是“Default”

  2. 我评论了这条线 Cull Off

(然后我制作了一个新的Material,称为“Sprite Single Sided”,将着色器设置为这个新的,然后Sprite我用新材质替换了材质槽。)

事实上,我是否通过进行此修改来搞砸着色器中的任何内容?一个人可以愉快地注释掉“Cull off”而不引起进一步的问题吗?改变使用的常用材料是否有一些问题Sprite(您无法“看到”它,所以我不知道)。更广泛地说,有没有更正确的方法来实现单面Sprite

// file "Sprites-DefaultSingle.shader"
Shader "Sprites/DefaultSingle"
{
  Properties
  {
    [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
    _Color ("Tint", Color) = (1,1,1,1)
    [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
  }

  SubShader
  { …
Run Code Online (Sandbox Code Playgroud)

shader unity-game-engine unity3d-2dtools

7
推荐指数
1
解决办法
5333
查看次数

在UIView.animate期间动画形状图层类型自定义UIViews?

想象一个高大的薄视图L(比方说,它看起来像一个梯子).

说它高100,我们将它设置为屏幕的全高.所以,在伪代码..

func expandLadder() {
view.layoutIfNeeded()
UIView.animate(withDuration: 4 ...
  ladderTopToTopOfScreenConstraint = 0
  ladderBottomToBottomOfScreenConstraint = 0
  view.layoutIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)

没问题.现在说我们沿着这些线在layoutSubviews中绘制梯子.

@IBDesignable class LadderView: UIView {
override func layoutSubviews() {
  super.layoutSubviews()
  setup()
}

func setup() {
  heightNow = frame size height
  print("I've recalculated the height!")
  shapeLayer ...
  topPoint = (0, 0)
  bottomPoint = (0, heightNow)
  p.addLines(between: [topPoint, bottomPoint])
  shapeLayer!.path = p
  shapeLayer add a CABasicAnimation or whatever
  layer.addSublayer(shapeLayer!)
}
Run Code Online (Sandbox Code Playgroud)

没问题.

所以我们只是制作一个填充视图高度"heightNow"的线p.

问题当然是,当你这样做时......

func expandLadder() {
view.layoutIfNeeded()
UIView.animate(withDuration: 4 ...
  ladderToTopOfScreenConstraint = 0
  ladderBottomOfScreenConstraint …
Run Code Online (Sandbox Code Playgroud)

xcode animation core-animation swift

7
推荐指数
1
解决办法
1075
查看次数