草庐IT

collisions_block

全部标签

iphone - Cocos2d : Calculate bounce of bullet when colliding with a block

我有一颗子弹可以撞到一个方block。我想知道子弹是在x方向弹跳还是在y方向弹跳。就像您在图像上看到的那样,只有几个像素的差异让子弹向另一个方向反弹。(仅供引用:是的,子弹可以在我的游戏中反弹;-))有谁知道这个问题的简单可靠的解决方案吗?非常感谢您的帮助菲利克斯 最佳答案 为了实现弹跳,你需要做两件事:碰撞检测更新子弹的位置和速度第1步:如果您想正确检测碰撞,您必须计算矩形边框与连接当前子弹位置和计算出的下一个子弹位置的直线的交点(就好像没有障碍物一样)。如果有多个交点,取第一个碰到边界的交点。在Box2D中,您将使用raycas

objective-c - 会 self 保留在 block 内吗?

在调用block之前/之后,保留计数始终为1。来自appleblockdoc我们知道self应该保留。谁能知道为什么?NSLog(@"Beforeblockretaincount:%d",[selfretainCount]);void(^block)(void)=^(void){UIImage*img=[UIImageimageNamed:@"hometown.png"];[selfsetImage:img];NSLog(@"Afterblockretaincount:%d",[selfretainCount]);};block(); 最佳答案

iphone - Objective-C : __block variables

是否可以为局部变量分配一个范围在block外的值并保留其值?特别是,我正在为iOS编码,我在另一个block内有一个嵌套block,我想在block内为NSString分配一个值,然后(在block外)使用它。当我在block之后引用NSString时,我尝试使用__blocknut我得到一个错误的访问错误。我正在使用ARC,这很重要。例如:__blockNSString*str;someBlock^(idparam1){str=@"iPhone";}[strgetCharAtIndex:1];//orw/e我是不是在做一些概念上的错误,或者这是不允许的,或者是什么?非常感谢您的帮助。

iphone - 给定一个异步 block ,如何知道该 block 何时完成?

假设您正在使用来自ALAssetsLibraryAPI的异步block,例如enumerateGroupsWithTypes:ALAssetsGroupAllusingBlock:^(ALAssetsGroup*group,BOOL*stop)。首先,由于block是异步的,这是否意味着系统将自动在单独的执行线程上运行block?如果是这样,了解block何时完成的最佳方法是什么,以便我可以执行一些操作,例如停止UIActivityIndi​​cator旋转或重新加载UITableView。IE喜欢animateWithDurationblock,它有一个完成block,允许您在动画完

objective-c - 对多个位置进行地理编码 - 了解何时调用 "All"完成 block

我正在使用CoreLocation的地理编码器来获取多个map项的CLLocation坐标。地理编码器在每个项目完成时调用一个完成block。我如何创建一个类似的block功能,当所有这些包含异步地理编码器调用的调用已完成时调用?(我可以使用手动计数器。但必须有更优雅的解决方案)到目前为止,这是我的地理编码功能。它循环遍历一系列位置项,并为每个项启动一个新的地理编码过程。-(void)geoCodeAllItems{for(EventItem*thisEventin[[EventItemStoresharedStore]allItems]){if(![thisEventeventLoc

ios - 在具有快速枚举的 for 循环中使用 block 的错误

所以我试图在一个数组中建立一个block队列,然后在稍后阶段执行队列,该队列是在使用block中使用的字符串枚举的forloop中建立的。NSArray*array=@[@"test",@"if",@"this",@"works"];NSMutableArray*queue=[NSMutableArraynew];for(idkeyinarray){//addtheworktothequeuevoid(^request)()=^{NSLog(@"%@",key);};[queueaddObject:request];//request();//thisworksfineifijuste

iOS: block 和ivars

这个问题在这里已经有了答案:ClarificationonApple'sBlockDocs?(2个答案)关闭8年前。在很多问题中,询问是否可以在block中使用self。答案是否定的,以避免保留循环。现在,当我在我的UIViewControllerblock中使用“ivar”时,它应该没问题。但是当我使用:-(void)viewDidLoad{[_customCellsetChangedValueBlock:^{if(_object!=nil){NSLog(@"Thisisasample");}}];}dealloc方法从未被调用:-(void)dealloc{NSLog(@"Deal

ios - 方法内部的 block 不返回

我必须遵循以下方法。如果用户喜欢该页面,我希望此方法返回1,如果用户不喜欢该页面,则返回0。但似乎在该函数之前调用了该block。有没有办法解决这个问题?谢谢!-(NSInteger)userWithId:(NSString*)fb_idlikesPageWithID:(NSString*)page_id{__blockNSIntegerreturnValue;NSString*fbGraphPath=[NSStringstringWithFormat:@"/%@/likes/%@",fb_id,page_id];NSLog(@"%@",fbGraphPath);[FBRequestC

ios - 使用 AutoLayout 的 *Only One* 动画 block (UILabel) 问题

我正在使用AutoLayout并为各种约束变化设置动画,没有任何问题。但是,VC中有一个UILabel根本不会动画。我想要的动画是类似删除的效果。我已经设置了一个计时器,根据rdelmar的建议,因为UILabel不支持动画约束,并且我得到了我想要的标签只有一行长的效果。但是,多行标签不会产生类似删除的效果,而是随着标签宽度的增加,字符会换行。下面是我如何设置标签的约束。-(void)initializeLabelWithMessage:(NSDictionary*)message{meaningLabel.text=[messagingSubMethodsmeaningStringF

iOS 后台获取和完成 block

我正在尝试定义这个方法-(void)backgroundFetchWithCompletion:(void(^)(UIBackgroundFetchResult))completionHandler;但是我在UIBackgroundFetchResult上收到一个错误,说只允许没有类型的参数列表,我正在学习本教程和这个tutorial这就是他们定义方法的方式。 最佳答案 最后执行一些操作后,您必须调用列表中的一个。objective-CcompletionHandler(UIBackgroundFetchResultNewData)