小编Ste*_*eve的帖子

Cocos2d淡入/淡出动作,永远重复

我正在尝试为我的CCSprite基础Player类创建一个方法来启动播放器实例淡入和淡出,直到通过调用停止stopAllActions.

在我的Player班上,我有:

- (void)pulse
{
    [self setOpacity:1.0];
    CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5];
    CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0];

    CCSequence *pulseSequence = [CCSequence actions:
                                 fadeIn, // I get a warning about incompatible pointer types...
                                 fadeOut, 
                                 nil];
    [self runAction:pulseSequence];
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,也没有解决永远重复的问题.我知道我应该使用,CCRepeatForever但我没有看到如何正确实现它.

谢谢!

action repeat cocos2d-iphone

7
推荐指数
1
解决办法
2万
查看次数

如何将iOS设备连接到自定义USB设备?

我正在开发一种定制电子设备 - 将其视为一种特殊的数据记录器,我需要连接一台计算机来配置它并提取数据.

我知道我可以在PC上毫不费力地做到这一点,但我想使用iOS设备来做到这一点.

两个问题:

我可以使用常规底座连接器/ USB线进行此操作吗?EA框架会让我进行所有沟通吗?

一旦我提取了数据,从iPad中获取数据的最佳方法是什么?发一封电子邮件,保存到保管箱或其他东西?

谢谢!

usb dock ios

7
推荐指数
1
解决办法
1万
查看次数

是否需要大量使用NSLog?

作为一个新的程序员,我发现了NSlog它的魔力,并通过我的代码使用它.它NSZombieEnabled在调试中非常有用(同时).

我可以在模拟器上看到明确的性能打击,因为它打印出所有这些东西.我不认为我在设备上看到任何这样的打击,但我不确定.

所以留下所有东西需要花费多少钱NSLogs?是否在设备上使用更多内存?或者编译器是否只是忽略它们,就像我为设备编译时的注释一样?

编辑:

根据我的建议,这是我实施的内容 rano.

在我的App_Prefix.pch文件中,我补充说:

// DLog is almost a drop-in replacement for NSLog
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead     DLog(@"%@", aStringVariable);
#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line …
Run Code Online (Sandbox Code Playgroud)

memory iphone nslog ios

6
推荐指数
1
解决办法
1321
查看次数

何时何地放置@class声明

我正在开发一个包含多个自定义类的项目.我有一个CardModel(NSObject)有一些整数属性来保存数据,和一个Deck(NSObject)有一个数组来容纳一堆CardModels然后一个CardView(UIView)有CardModel一个属性,当我CardModel从一个选择一个Deck.然后我有一堆UIViewControllers我在一个地方移动UINavigationController.

我的问题是关于何时何地使用@class编译器指令.

如果我子类UIViewController通过使一个新的文件和子类的话,我应该用@class MyViewController在标题MyViewController.h.m与它在文件中实际使用的控制器(当一个控制器是要实例化另一个控制器类型和象头去把它推到堆栈里.或者我是否需要使用它?是否只有在我真正向我的班级添加新属性时才需要超出库存实施中的内容?好像我把@class所有的地方,只要确保我没有得到错误,但我当我需要它并不能从根本上理解.

谢谢!

iphone xcode class objective-c

4
推荐指数
1
解决办法
265
查看次数

如何使CATransform3dMakeRotation以其他方式旋转?并链在一起

我第一次使用一些Core Animation,在实现我可以翻转的扑克牌的过程中,我决定使用a CALayer来显示内容(不知道我将如何获得双方,但这是另一个问题)我需要能够翻转它,移动它等等......

我正在使用CATransaction取得了一些成功 - 在下面的片段中,卡片从左下角移动到左上角并翻转.问题是,我不想以相反的方式翻转,但不知道该怎么说,"嘿,你的方向错了!"


[CATransaction begin]; 
[CATransaction setValue:[NSNumber numberWithFloat:2.0f] forKey:kCATransactionAnimationDuration];
myCard.position = CGPointMake(CGRectGetMidX(self.bounds)/2,CGRectGetMidY(self.bounds)/2);
myCard.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0);
[CATransaction commit]; 
Run Code Online (Sandbox Code Playgroud)

第二个问题是:如何让它一次完成两次变换?我试过嵌套两个CATransactions,但第二个只是覆盖了第一个.我也尝试将旋转的矢量更改为2D,就像说围绕x和y轴旋转一样,但这并不等于只用两个单独的轴来翻转它.这是嵌套代码.


[CATransaction begin]; 
[CATransaction setValue:[NSNumber numberWithFloat:2.0f] forKey:kCATransactionAnimationDuration];
myCard.position = CGPointMake(CGRectGetMidX(self.bounds)/2,CGRectGetMidY(self.bounds)/2);
myCard.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0); // rotate about x

  [CATransaction begin]; 
  [CATransaction setValue:[NSNumber numberWithFloat:1.0f] forKey:kCATransactionAnimationDuration];
  myCard.transform = CATransform3DMakeRotation(M_PI, 0, 1, 0); // rotate about y
  [CATransaction commit]; 

[CATransaction commit]; 
Run Code Online (Sandbox Code Playgroud)

这里是UIView动画块里面的......我为角度添加了滑块,为旋转矢量添加了x,y,z,为时间添加了t.翻译在时间= 2t内进行,每次旋转每次只需要t.

[CATransaction begin]; 
[CATransaction setValue:[NSNumber numberWithFloat:t * 2] forKey:kCATransactionAnimationDuration]; …
Run Code Online (Sandbox Code Playgroud)

iphone core-animation catransform3d ios

4
推荐指数
1
解决办法
2万
查看次数

如何将CCSprite从一个父级转移到另一个父级?

我有一个CCSpritesprite那就是一个孩子CCLayermovingLayer这本身就是当前的一个孩子CCLayer跑我的游戏逻辑,所以self在这种情况下. movingLayer在一个重复的永远行动中来回穿过屏幕,sprite并在它上面骑行.我想要sprite"开始" movingLayer并"继续"到self它可以做自己的一些行动的地方.

当我尝试这样做时,我需要告诉movingLayer删除spriteself添加sprite. 这就是我所做的...

- (void)attack:(id)sender
{
    [sprite stopAllActions];
    [movingLayer removeChild:sprite cleanup:YES];
    [self addChild:sprite z:1];
    CGFloat distance = ccpDistance(sprite.position, ccp(sprite.position.x, -sprite.contentSize.height/2));
    id goDown = [CCMoveTo actionWithDuration:distance/moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)];
    id repeatDown = [CCRepeatForever actionWithAction:[CCSequence actions:[CCMoveTo actionWithDuration:0 position:ccp(sprite.position.x, sprite.contentSize.height/2+self.contentSize.height)], [CCMoveTo actionWithDuration:moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)], nil]];
    id attackAction = [CCSequence actions:goDown, repeatDown, nil];
    [sprite runAction:attackAction];
} …
Run Code Online (Sandbox Code Playgroud)

cocos2d-iphone cclayer ccsprite

4
推荐指数
1
解决办法
2034
查看次数

为什么这个for循环不执行?

我有一个选择器视图控制器来选择化学源和可能的浓度.如果光源没有浓度,它只会提供一个选择器.它由一个NSDictionary源类型名称keys和一个我调用的自定义模型对象填充,Chemical它有四个属性,两个NSString,一个float和一个BOOL.

当我用包含2个组件的字典触发它时,我想从Chemical表示的那个中提取四个值.请注意,我使用前两个属性的值填充选择器,但不包括floatBOOL.我遍历数组中的第一个组件中选择的键,并检查第二个组件中的字符串与键/值数组中chemConcentration每个Chemicals 的属性.当chemConcentration比赛时,我知道我有权利Chemical,我可以将其属性发回.

呼!

问题是,即使我知道我进入for循环,它似乎被跳过了.NSLog在它打印之前的右边,但里面的那个没有. sourceConstantsourceIsLiquid0.0NO

- (IBAction)selectedSourceButton {
    NSLog(@"selectedSourceButton pressed");
    NSInteger sourceRow = [picker selectedRowInComponent:kSourceComponent];
    NSString *selectedSource = [self.sources objectAtIndex:sourceRow];
    NSArray *selectedChemicalGroup = [dictionaryOfSources objectForKey:selectedSource];
    NSInteger concentrationRow = [picker selectedRowInComponent:kConcentrationComponent];
    NSString *selectedConcentration = [[NSString alloc] init];
    float selectedConstant = 0.0;
    BOOL selectedIsLiquid = NO;

    if …
Run Code Online (Sandbox Code Playgroud)

iphone xcode loops objective-c uipickerview

2
推荐指数
2
解决办法
177
查看次数

将javascript函数转换为Obj-C函数

我想在我的Obj-C应用程序中使用一堆用Javascript编写的函数.我制作了一个头文件并获得了第一个转换,但是第二个被卡住了.这是我开始的,到目前为止我做的不起作用......

function calcDayOfWeek(juld)
    {
        var A = (juld + 1.5) % 7;
        var DOW =     (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
        return DOW;
    }
Run Code Online (Sandbox Code Playgroud)

......和我的尝试:

NSString calcDayOfWeek(float julianDay)
{
    float A = (julianDay + 1.5) % 7;
    NSString DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
    return DOW;
}
Run Code Online (Sandbox Code Playgroud)

它应该根据朱利安日数的输入返回一周中的字符串.

编辑:Per Yuji的答案,这是有效的...

NSString* calculateDayOfWeek(float julianDay) {
    int a = fmod(julianDay + 1.5, 7);
    NSString* dayOfWeek = (a==0)?@"Sunday":(a==1)?@"Monday":(a==2)?@"Tuesday":(a==3)?@"Wednesday":(a==4)?@"Thursday":(a==5)?@"Friday":@"Saturday";
    return dayOfWeek;
}
Run Code Online (Sandbox Code Playgroud)

javascript function objective-c

2
推荐指数
1
解决办法
1046
查看次数

如何在不使用导航栏的情况下将控制器从导航堆栈中弹出

我正在尝试使用一些分层视图实现导航控制器.我想使用常规的UIViewController来呈现向下钻取的选项,我不想使用导航栏 - 我想拥有自己的自定义按钮来返回一个级别.

我看到如下例子:

[[self navigationController] pushViewController:nextViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

我的问题是这些:是navigationController所有UIViewControllers的属性吗?self.navigationController无论堆栈中的视图如何,我都可以参考吗?如果我处于任意视图中,我是否可以使用包含类似内容的按钮操作[self.navigationController popToRootViewController animated:YES];

我提供的每个视图都需要一个按钮来返回上一个视图或根视图,具体取决于具体情况.我想在每个视图控制器中创建该按钮,并控制它返回的堆栈中的哪个视图.我是在正确的轨道上吗?

iphone uinavigationcontroller

1
推荐指数
1
解决办法
6615
查看次数

客观的c浮点数和布尔数可能吗?

NSArray chemConstantArray = [[NSArray alloc] initWithObjects:0.0021400, 0.0012840, 0.0010700, nil];
Run Code Online (Sandbox Code Playgroud)

给我四个错误:

Incompatible type for argument 1 of 'initWithObjects:'

Invalid initializer

Statically allocated instance of Objective-C class 'NSArray' x 2

这是有道理的,因为浮点数不是对象,但我如何制作浮点数组.我也需要BOOL一个.

arrays iphone floating-point boolean objective-c

1
推荐指数
1
解决办法
3569
查看次数

不知怎的,我的单身人士属性正在被释放

我有一个单独的对象PoolManager,它在plist中加载并保存一些数据.在我的程序中,当需要了解我的池时,它会询问[PoolManager sharedPoolManager]它的属性.我有一个视图负责设置这些属性,而其他所有其他属性只是从中读取.一切正常,然后无缘无故地说,它开始崩溃了.我设置NSZombieEnabled = YES并且可以看到,当我访问这两个NSString属性中的一个时,它们似乎已被释放.调试器消息是:*** -[CFString respondsToSelector:]: message sent to deallocated instance 0x5a336d0

我尝试回到之前的快照,其中一切正常,它仍然这样做.我甚至使用TimeMachine从昨天开始回到项目中,它也是如此.我很困惑.

这是单例对象代码......它是surfaceshape字符串显然是僵尸.对不起NSLogs


//  MyPoolSingleton.h

#import <Foundation/Foundation.h>

#define kFileName @"data.plist"

@interface PoolManager : NSObject {
    float   volume;
    float length;
    float width;
    float depth;    
    NSString *surface;
    NSString *shape;
    BOOL isMetric;
    int fcTarget;
    int cyaTarget;
    int taTarget;
    int chTarget;
    int saltTarget;
}

@property float volume;
@property float length;
@property float width;
@property float depth;
@property (nonatomic, retain) …
Run Code Online (Sandbox Code Playgroud)

iphone xcode memory-management objective-c nszombie

0
推荐指数
1
解决办法
658
查看次数