好吧,所以我开始学习更多关于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) 我向数据库询问对象的日期.我收回了一个字符串:( 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大师的帮助吗?非常感谢!
这是家庭作业,我遇到了很多麻烦.我正在使用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)
但它不起作用......书总是在货架上.我想说,"对于每本书,如果它没有被借出,它就在货架上.否则就会出局."
非常感谢更正,示例和提示.
我正在使用我的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) 我正在努力让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) 所以,我读了这篇文章,这正是我所寻找的.但是......它不起作用.我想我不打算使用单例对象,而是将数组放在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中,但我做错了因为它不起作用.有人可以给我一些示例代码,在哪里放置访问权限吗?我不知道它应该在实现中,还是在其他地方,并且一旦数组被初始化,如何从其他文件访问它...我是否为数组设置了一个新变量,或者什么?
我正在努力将as3delaunay转录为Objective-C.在大多数情况下,整个算法可以完全按照应有的方式工作和创建图形.但是,对于较大的值(数千个点),算法主要起作用,但会产生一些不正确的图形.
我一直在回过头来检查最明显的错误位置,但我实际上找不到任何东西.对于较小的值,我运行原始算法的输出并将其放入JSON文件中.然后我将输出读入我自己的测试(仅测试3或4点),并调试直到输出匹配; 我检查了两行算法的输出行,并发现了差异.但是我不可能做到这一点1000分.
答案不需要特定于我的情况(虽然建议我可以使用的工具将是非常好的).
如何调试仅对大值失败的算法?
在我的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!谢谢!
在我的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) 好的,所以,这段代码非常基础.用户将答案输入到文本框中,如果它等于"第一+第二",则他们得到一个点.然后,他们有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 ×7
objective-c ×4
ios ×3
restkit ×2
algorithm ×1
alloy ×1
cocoa-touch ×1
date-format ×1
debugging ×1
devise ×1
flash ×1
json ×1
nstimer ×1
stage ×1