首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请帮帮我!创建新对象(从数组?)对象完成任务后

请帮帮我!创建新对象(从数组?)对象完成任务后
EN

Stack Overflow用户
提问于 2011-05-13 00:56:52
回答 1查看 89关注 0票数 0

我正在编写一个iPhone应用程序,这里是整体概要:一个对象在屏幕上,并根据加速计输入移动-我有工作-它移动到屏幕边缘,不熄灭=完美。现在,我想要发生的是,一旦该对象命中四个屏幕边缘中的任何一个,它应该停止并停留在屏幕上,一个新的对象应该“出现”并开始移动,这是由于加速计的输入,所以现在屏幕上有两个对象,但只有一个在移动。最终,可能会有20个对象围绕边缘构建,但一次只有一个对象在移动。

所以我现在已经得到了我需要的帮助来检查边缘点击等,但我现在正在尝试切换我让框显示在屏幕上的方式。我最初是通过视图控制器将图像放在屏幕上,但现在我要做的是从中心的一个框开始,当它到达边缘时,它应该停止并停留,由于如上所述的accel输入,一个新的图像将出现在中心并开始移动。那么,我是否只需要使用一个数组来拉取图像呢?我甚至没有把.png放在视图控制器上,我应该直接对它进行编码吗?下面是我尝试通过数组实现的一些方法:

代码语言:javascript
复制
//In my .h
UIImageView *blocks;
NSString *blockTypes[3];

//In my .m
blockTypes[0] = @"greenBox1.png";
blockTypes[1] = @"greenBox2.png";
blockTypes[2] = @"greenBox3.png";

提前感谢您的帮助!到目前为止,帮助是很大的!

EN

回答 1

Stack Overflow用户

发布于 2011-05-13 01:21:07

您不应该测试newX和newY是否等于30和50。您应该分别测试它们是否小于30和50。

编辑:我会这样做:

代码语言:javascript
复制
loat newX = [mutableBoxArray lastObject].center.x + (accel.x * 12);
float newY = [mutableBoxArray lastObject].center.y + (accel.y * -12);
if(newX > 30 && newY > 50 && newX < 290 && newY < 430) {
    [[mutableBoxArray lastObject] setCenter: CGPointMake(newX, newY)];
} else {
    MyBox *myBox = [[MyBox alloc] init];
    [mutableBoxArray addObject: myBox];
    [myBox release];
}

编辑2:在您的接口文件中添加以下内容

代码语言:javascript
复制
NSMutableArray *mutableBoxArray;
NSArray *imageNamesArray;

然后在loadView的实现文件中添加

代码语言:javascript
复制
mutableBoxArray = [[NSMutableArray alloc] init];
imageNamesArray = [[NSArray alloc] initWithObjects: @"orangeBox1.png", 
                   @"blueBox1.png", @"greenBox1.png", @"pinkBox1.png", nil];

然后将上面的方法更改为

代码语言:javascript
复制
static NSInteger imageInt = 0;
loat newX = [mutableBoxArray lastObject].center.x + (accel.x * 12);
float newY = [mutableBoxArray lastObject].center.y + (accel.y * -12);
if(newX > 30 && newY > 50 && newX < 290 && newY < 430) {
    [[mutableBoxArray lastObject] setCenter: CGPointMake(newX, newY)];
} else {
    if (imageInt < [imageNamesArray count]) {
        UIImage *image = [UIImage imageNamed: [imageNamesArray objectAtIndex: imageInt++]];
        UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
        [imageView setCenter: CGPointMake(100.0f, 100.0f)];
        [mutableBoxArray addObject: imageView];
        [imageView release];
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5981600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档