gpt4 book ai didi

c++ - 如何让小球朝某个方向移动?

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

我想让我的球员,让球朝某个方向移动,大约向上 120 度。此刻球向所有方向移动,但球向上而不是向下。球也有 4 种不同的速度。

 if(CGRectIntersectsRect(BallA.frame, PlayerA1.frame)){

Y = arc4random() %5;
Y = 0-Y;
}

}

球运动

timer = [NSTimer scheduledTimerWithTimeInterval:0.006 target:self selector:@selector(BallMovement4) userInfo:nil repeats:YES];

-(void)BallMovement4{

[self Computer4Movement];
[self Collision4];

Ball4.center = CGPointMake(Ball4.center.x + X, Ball4.center.y + Y);


if (Ball4.center.x < 15) {
X = 0 - X;
}

if (Ball4.center.x > 305) {
X = 0 - X;
}

请帮忙,

谢谢

米兰

最佳答案

有点不清楚您要做什么以及您的类是如何工作的,但一般来说,如果您想移动事物,一种好的方法是使用 vector 。例如,如果您希望球在给定方向上每帧移动 3 个像素,则球将具有位置和速度 vector ,如下所示:

typedef struct Ball { // could be a class if that makes sense for your use
CGPoint position;
CGPoint velocity;
} Ball;

您可以将它们设置为某个初始值,如下所示:

Ball ball = { { 0.0, 0.0 }, // Ball starts at the origin 
{ 1.0, 2.0 } }; // Ball starts out moving 1 pixel to the right and 2 pixels up

然后在游戏的每一帧上,您将速度添加到位置,如下所示:

ball.position.x += ball.velocity.x;
ball.position.y += ball.velocity.y;

您可以改变速度,例如,当球撞到墙上时。如果您试图模拟真实的东西,您需要找到球撞击墙壁的角度并将其反转。

关于c++ - 如何让小球朝某个方向移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28252733/

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