小编Eth*_*ick的帖子

如何让对象对Cocos2D中的触摸作出反应?

好吧,所以我开始学习更多关于Coco2D的知识,但是我有点冷淡.我发现很多教程都是针对代码的过时版本,所以当我查看并查看它们是如何做某些事情时,我无法将其转换为我自己的程序,因为很多内容已经发生了变化.话虽如此,我正在使用最新版本的Coco2d,版本0.99.

我想要做的是在屏幕上创建一个精灵(完成)然后当我触摸那个精灵时,我可以发生"某事".现在,让我们发出警报.现在,我在朋友的帮助下得到了这段代码.这是头文件:

// When you import this file, you import all the cocos2d classes
#import "cocos2d.h"

// HelloWorld Layer
@interface HelloWorld : CCLayer
{
 CGRect spRect;
}

// returns a Scene that contains the HelloWorld as the only child
+(id) scene;

@end
Run Code Online (Sandbox Code Playgroud)

这是实现文件:

//
// cocos2d Hello World example
// http://www.cocos2d-iphone.org
//

// Import the interfaces
#import "HelloWorldScene.h"
#import "CustomCCNode.h"

// HelloWorld implementation
@implementation HelloWorld

+(id) scene
{
 // 'scene' is an autorelease object.
 CCScene *scene = [CCScene node];

 // …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c cocos2d-iphone ios

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

从String发表日期'2011-08-16T19:03:21.000Z'

我向数据库询问对象的日期.我收回了一个字符串:( 2011-08-16T19:03:21.000Z这是另一个字符串:) 2011-08-12T02:13:16.000Z;

编辑:这是另一个我在2011年8月16日下午12:51进行测试的目的: 2011-08-16T19:51:24.000Z

我想将此日期转换为另一种格式以供显示.这种格式将来可能会改变,所以我不想直接进行字符串操作.最好的办法是将其转换为NSDate,然后再转换为格式正确的字符串.但是,对于我的生活,我不能将这个darn字符串写入NSDate.

- (NSString *)makeDateStringReadable:(NSString *)dateString {
    NSLog(@"The String: %@", dateString);
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss.zzzz"];
    NSDate *theDate = [formatter dateFromString:dateString];
    NSLog(@"The Date: %@", theDate);
    [formatter setDateFormat:@"yyyy-MM-dd"];
    NSString *finalString = [formatter stringFromDate:theDate];
    [formatter release];
    return finalString;
}
Run Code Online (Sandbox Code Playgroud)

传入原始字符串,并将其注销,但"日期:"日志始终显示为null.我假设格式不正确...但我不能让它正确.我也试过用这个作为参考.

我能获得DateFormatter大师的帮助吗?非常感谢!

iphone objective-c date-format nsdateformatter ios

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

有一个或另一个对象,但不是两个?

这是家庭作业,我遇到了很多麻烦.我正在使用Alloy来建模库.以下是对象的定义:

sig Library {
    patrons : set Person,
    on_shelves : set Book,
}

sig Book {
    authors : set Person,
    loaned_to : set Person,
}

sig Person{}
Run Code Online (Sandbox Code Playgroud)

然后,我们需要有一个事实,即状态,每本书都在书架上,或由赞助人取出.但是,他们不能在两个地方.

// Every book must either be loaned to a patron or
// on the shelves.
fact AllBooksLoanedOrOnShelves {}
Run Code Online (Sandbox Code Playgroud)

我试过这个......

fact AllBooksLoanedOrOnShelves {
    some b : Book {
        one b.loaned_to =>
            no (b & Library.on_shelves)
        else
            b in Library.on_shelves
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用......书总是在货架上.我想说,"对于每本书,如果它没有被借出,它就在货架上.否则就会出局."

非常感谢更正,示例和提示.

alloy

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

从JSON创建Devise中的用户

我正在使用我的iOS应用程序集成运行Devise的Rails 3.1应用程序进行用户身份验证.我希望用户能够从应用程序注册,然后我可以存储这些凭据以便稍后登录.

使用RestKit,我这样做:

-(IBAction)registerUser:(id)sender {
    NSDictionary *params = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
                                                                self.email.text,
                                                                self.password.text,
                                                                self.confirmPassword.text,
                                                                nil]
                                                       forKeys:[NSArray arrayWithObjects:
                                                                @"email",
                                                                @"password",
                                                                @"password_confirmation",
                                                                nil]];

    [[RKClient sharedClient] post:@"/users.json" params:params delegate:self];
}
Run Code Online (Sandbox Code Playgroud)

/users.json网址进入:user_registration POST /users(.:format) {:action=>"create", :controller=>"devise/registrations"}(根据耙路线).看来post调用接受不同的格式,所以我认为它会接受JSON.我的帖子请求被序列化为JSON,并被发送出去.服务器获取它,这是日志:

Started POST "/users.json" for 129.21.84.10 at 2012-01-12 15:33:57 -0500
  Processing by Devise::RegistrationsController#create as JSON
  Parameters: {"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "email"=>"test1@test.com"}
WARNING: Can't verify CSRF token authenticity
  User Load (0.9ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
   (0.3ms)  BEGIN
   (0.2ms)  COMMIT
   (0.2ms)  BEGIN
   (0.4ms) …
Run Code Online (Sandbox Code Playgroud)

iphone json ruby-on-rails devise restkit

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

如何使用RestKit将对象发布到rails?

我正在努力让RestKit和Rails发生魔术.我正在使用Rails 3.1.1和RestKit 0.9.3(不是主分支).我在我的iOS应用程序中使用Core Data,所以我正在尝试设置应用程序以尽可能多地使用RestKit魔法与rails应用程序进行交互.

但是,我在尝试将新对象发布到要创建的服务器时遇到问题.我成功地把对象搞得一团糟.这是我的代码:

RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://IP_ADDRESS"];
manager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"magikarp.sqlite"];
manager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;
manager.acceptMIMEType = RKMIMETypeJSON; 
manager.serializationMIMEType = RKMIMETypeJSON; 

///
/// Setup Routing
///

RKObjectRouter *router = [[RKObjectRouter alloc] init];
[router routeClass:[List class] toResourcePath:@"/lists/(listID)"];
[router routeClass:[List class] toResourcePath:@"/lists" forMethod:RKRequestMethodPOST];
manager.router = router;

///
/// Setup mapping for my "List" object; a subclass of NSManagedObject
///
RKManagedObjectMapping *listMapping = [RKManagedObjectMapping mappingForClass:[List class]];
listMapping.primaryKeyAttribute = @"listID";

[listMapping mapAttributes:@"title", nil];
[listMapping mapKeyPath:@"id" toAttribute:@"listID"];
[manager.mappingProvider setMapping:listMapping forKeyPath:@"list"];
Run Code Online (Sandbox Code Playgroud)

这似乎对我有用.现在,我想将新创建的对象POST回服务器.

- (void)createList:(NSString …
Run Code Online (Sandbox Code Playgroud)

iphone serialization ruby-on-rails ios restkit

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

如何制作全局数组?

所以,我读了这篇文章,这正是我所寻找的.但是......它不起作用.我想我不打算使用单例对象,而是将数组放在Global.h文件中,或将其插入_Prefix文件中.

我这两次都这样做,我得到错误:

'静态'之前的预期说明符限定符列表

它不起作用.所以...我不知道如何让它工作,我可以删除extern并且它有效,但我觉得我需要它使它成为一个常数.

最终目标是可以从项目中的任何对象或任何文件访问此Mutable数组.帮助将不胜感激!

这是我的Globals.h文件的代码:

#import <Foundation/Foundation.h>

static extern NSMutableArray * myGlobalArray;
Run Code Online (Sandbox Code Playgroud)

我不认为我在实现文件中需要任何东西.如果我把它放在前缀文件中,错误是相同的.

编辑

所以,我从Globals中删除了.m文件,我只是在Globals.h中有代码.假设我将继续这种使用全局变量的可怕做法(我知道它很糟糕,我只想测试它),我现在有了一个新的错误.它说:

"声明说明符中的多个存储类"

如果我删除"extern"它是有效的,如果我删除"静态"它的工作原理,但两者都不...现在呢?

****双重编辑****

Aright,所以我尝试将数组添加到我的UIApplication Delegate中,但我做错了因为它不起作用.有人可以给我一些示例代码,在哪里放置访问权限吗?我不知道它应该在实现中,还是在其他地方,并且一旦数组被初始化,如何从其他文件访问它...我是否为数组设置了一个新变量,或者什么?

iphone global-variables nsmutablearray iphone-sdk-3.0

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

我的算法只对大值失败 - 我该如何调试?

我正在努力将as3delaunay转录为Objective-C.在大多数情况下,整个算法可以完全按照应有的方式工作和创建图形.但是,对于较大的值(数千个点),算法主要起作用,但会产生一些不正确的图形.

我一直在回过头来检查最明显的错误位置,但我实际上找不到任何东西.对于较小的值,我运行原始算法的输出并将其放入JSON文件中.然后我将输出读入我自己的测试(仅测试3或4点),并调试直到输出匹配; 我检查了两行算法的输出行,并发现了差异.但是我不可能做到这一点1000分.

答案不需要特定于我的情况(虽然建议我可以使用的工具将是非常好的).

如何调试仅对大值失败的算法?

algorithm debugging

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

舞台调整大小并获得正确的变量

在我的Flash应用程序(AS3)中,我想获得舞台大小并使用它,以便我的对象(用户控制的)不能超出屏幕.但是,当我使用时:

stage.stageWidth;
stage.stageHeight;
Run Code Online (Sandbox Code Playgroud)

我得到的价值实际上并不是我想要的.它们给了我舞台大小,但如果我调整窗口大小,数字也会改变.现在,在一个html页面中,我认为这不重要,因为用户无法调整它...但是,我希望它比依赖窗口大小更加坚固.我也试过用:

stage.width;
stage.height;
Run Code Online (Sandbox Code Playgroud)

然而,那些给了我"801"和"601",比我的实际舞台大小更大.当我调整窗口大小时,这些值没有改变,但它们更大.

所以我的问题是,无论窗口大小调整为800乘600,我怎样才能获得舞台大小?(或许隐藏在这个问题中的是,"为什么我会得到801和601?"和"我可以阻止人们调整窗口大小吗?")P!谢谢!

flash stage actionscript-3

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

NSMutableDictionary从不同的类访问

在我的iPhone应用程序中,我使用整数来跟踪很多变量.我在我的AppDelegate文件中声明并初始化它们(它是一个多视图应用程序),然后如果我在其他视图(类)中声明它们并且值保持不变.这样,我可以在App Delegate文件中设置Money = 200,然后在另一个视图中声明"int Money;" 并且它已经设置为200(或者任何金钱碰巧都是.)

但是,如果我将所有这些变量存储在一个Dictionary中(我现在正在做),我如何从不同的类/视图中访问该字典?我不能简单地"再宣布"它,我已经尝试过了.我认为它与字典是一个对象有关,所以它需要被引用或其他东西.

我需要能够从所有不同的视图访问相同的字典.

#import "SheepAppDelegate.h"

@implementation SheepAppDelegate

@synthesize window;
@synthesize rootController;

//Initialize the Dictionary to store all of our variables

NSMutableDictionary *theHeart;



- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    //Set the values for the Variables and Constants, these are
   //accessed from the different classes.

    NSMutableDictionary *theHeart = [[NSMutableDictionary alloc] init];


    [theHeart setObject:[NSNumber numberWithInt:200] forKey:@"Money"];
    [theHeart setObject:@"Number two!" forKey:@"2"];


    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

初始化字典并向其添加内容工作正常,但在另一个类中.

#import "OverviewController.h"

@implementation OverviewController    

@synthesize lblMoney;
@synthesize lblSheep;
@synthesize lblWool;
@synthesize lblFatness;
@synthesize lblCapacity; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsmutabledictionary

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

停止NSTimer

好的,所以,这段代码非常基础.用户将答案输入到文本框中,如果它等于"第一+第二",则他们得到一个点.然后,他们有5秒钟来回答下一个数学问题.如果他们这样做,则再次运行"doCalculation"函数,他们得到另一个点.如果他们不这样做,则运行"onTimer"功能,并且屎会击中风扇.

问题是,当用户连续多次出现问题时,"doCalculation"会多次运行,然后我会同时运行多个计时器.这真的开始搞砸游戏.

我需要停止计时器.显然使用"无效"但我不知道在哪里.我不能在计时器开始之前使计时器无效,所以......那是什么?

我不确定如何做的另一种选择,如果每次问题得到解决,它只会将计时器设置回5秒而不是创建一个新计时器.但是如何判断定时器是否已经创建?我不确定最佳的行动方案是什么,或者语法.思考?

非常感谢!

- (IBAction)doCalculation:(id)sender
{
    NSInteger numAnswer = [answer.text intValue];
    if ( numAnswer == first + second) {
        numAnswered++;
        NSString *numberAnsweredCorrectly = [[NSString alloc] initWithFormat:@"%d", numAnswered];
        numCorrectlyAnswered.text = numberAnsweredCorrectly;
        answer.text = @"";

        NSTimer *mathTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];     

        //Set the variables to two HUGE numbers, so they can't keep plugging in the same answer

        first = arc4random() % 10;
        second = arc4random() % 10;

        NSString *firstString = [[NSString alloc] initWithFormat:@"%d", first];
        NSString *secondString = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nstimer

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