设置我的球的位置

Posted

技术标签:

【中文标题】设置我的球的位置【英文标题】:Setting the position of my ball 【发布时间】:2014-03-24 04:20:08 【问题描述】:

我正在学习如何使用 SpriteKit

问题:

作为练习,我正在尝试模拟乒乓球。我希望球的初始位置在中心,而在我的一生中,我不能将它的位置设置在中心。它总是出现在屏幕的左下角,我不知道为什么。我已将场景的缩放模式设置为等于SKSceneScaleModeAspectFill,并且我在单独的试验中尝试了以下每一行代码,以便将其位置设置为中心,但它始终保持在左下角角落。

    //Attempt #1
    self.ball.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); //find the middle of each axis and put them together in one coordinate
    //Attempt #2
    self.ball.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2); //find the width and height of the screen, divide each by 2 and assign them to an (x,y) coordinate together
    //Attempt #3
    self.ball.position = CGPointMake(160, 284) //Half the width and half the height
    //Attempt #4
    self.ball.position = CGPointMake(320, 568) //The width and the height (I'm desperately guessing at this point)
    //Attempt #5
    self.ball.position = CGPointMake(0,0) //I figured I'd give it a go

这个球是SKSpriteNode 顺便说一句,我没有创建SKSpriteNodeBall 子类或任何东西。奇怪的是,我已经能够在屏幕上准确地在我想要的位置显示其他精灵,例如桨和得分。只是这个球不配合。我究竟做错了什么?以后如何防止出现此问题?

【问题讨论】:

您可能将位置设置在错误的位置。请添加一些与球节点初始化相关的代码,以及您正在执行的块。 “这个球是一个 SKSpriteNode,因为我没有创建一个 SKSpriteNode 的 Ball 子类或任何东西。”那么Ball 是不是 SKSpriteNode?给我们更多的代码,而不是试图描述你如何创建对象 【参考方案1】:

如果你想让球的初始位置居中,那么写下面的代码:

 [self.ball setPosition:CGPointMake(self.size.width/2, self.size.height/2)];

我在我的代码中使用了上面的代码,它给了我完美的结果。

让我知道它是否有效?

编码愉快!

【讨论】:

你的意思可能是 self.frame.size.width 或类似的。 哦,哇,我很笨。在设置颜色和大小之前,我试图设置球的位置。

以上是关于设置我的球的位置的主要内容,如果未能解决你的问题,请参考以下文章

弹性碰撞

noip2019集训测试赛(二十一)Problem A: Colorful Balls

TYVJ4623 球球大作战·生存

2018年“华为杯”河北科技大学 “图像识别控制大赛”规则附件

[AGC002F]Leftmost Ball

AGC004F Namori