xcode动画球iphone问题横向模式

发布于 2024-11-01 09:20:57 字数 319 浏览 2 评论 0原文

大家好,我是法国人,请原谅我的英语。我的问题是,我正在纵向模式下在屏幕上制作一个球的动画,但现在我想在横向模式下做同样的事情。一切正常,但当球击中 iPhone 的一侧时,它会穿过它。这段代码不起作用我认为问题出在 x 和 y 上。

if (ball1.center.x > 480 ||ball1.center.x < 0){ ajout.x = -ajout.x; } if (ball1.center.y > 320 ||ball1.center.y < 0){ ajout.y = -ajout.y;

Hi everyone I'm french so scuse me for my english. My problem is that I'm animating a ball on the screen in portrait mode, but now I want do to the same thing in landscape mode. Everything work but when the ball hit a side of the iphone it go throught it. this code doesn't work I think that the problem is about x and y.

if (ball1.center.x > 480 ||ball1.center.x < 0){
ajout.x = -ajout.x;
}
if (ball1.center.y > 320 ||ball1.center.y < 0){
ajout.y = -ajout.y;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

┾廆蒐ゝ 2024-11-08 09:20:57

是的,你的问题是 x 和 y 。在纵向模式下,x 为 480,y 为 320 是正确的。但是在横向模式下,这两个值是相反的。

试试这个代码;

CGRect _frame = [[UIScreen mainScreen] bounds];   

if (ball1.center.x > _frame.size.width || ball1.center.x < 0)
    ajout.x = -ajout.x;

if (ball1.center.y > _frame.size.height || ball1.center.y < 0)
    ajout.y = -ajout.y;

这应该返回屏幕的正确边界(纵向 320x480,横向 480x320)并检查这些值。

干杯。

Yes your problem is with the x and y. In portrait mode that is correct with x being 480 and y being 320. However in landscape the two values are reversed.

Try this code instead;

CGRect _frame = [[UIScreen mainScreen] bounds];   

if (ball1.center.x > _frame.size.width || ball1.center.x < 0)
    ajout.x = -ajout.x;

if (ball1.center.y > _frame.size.height || ball1.center.y < 0)
    ajout.y = -ajout.y;

This should return the propery bounds of your screen (320x480 in portrait, 480x320 in landscape) and check against those values.

Cheers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文