2009年8月29日土曜日

どのクラスのインスタンスを作っているかに注意しましょう・・・


http://github.com/akisute/MyShooting/blob/4570825e7384157d3572b689cc23f9bb3acc0b82/Classes/MSTGObjectFactory.m







+ (MSTGObject *)cannon
{
// ここが間違い。MSTGObjectではなくてMSTGCannonのインスタンスを生成する必要がある
MSTGObject *object = [MSTGObject spriteWithFile:@"cannon.png"];
return object;
}
MSTGObject
退Java

イニシャライザとかコンポジットとか考えた結果がこれだよ!

Cocos2D

http://github.com/akisute/MyShooting/tree/master



orz

2


1
CocosNodeSprite
// MSObjectの親ノード(Layer)の中で・・・
MSObject *object = [[[MSBullet alloc] initWithPosition:ccp(100,100)
angle:0.0
speed:200.0] autorelease];
[self addChild:object.node];
[[MSObjectManager sharedInstance] addObject:object
forOwner:kMSObjectOwnerEnemy];
[self removeChild:object.node];
[[MSObjectManager sharedInstance] removeObject:object];
MSObjectManager1CocosNodeaddMSObject:forOwner:removeMSObject:2


2schedule使
// MSObjectの中で
// 毎フレームごとに呼び出されるメソッドを定義する
- (void)onFrame:(ccTime)dt
{
// 死亡判定してみたり
// 衝突判定してみたり
// ライフを回復したり無敵フレームを設定してみたり
}

- (id)init
{
if(self = [super initWithFile:@"ship.png"])
{
// sceduleメソッドはCocosNodeのメソッドなのでこうやって登録する
// しかしschedule出来るのはCocosNode自身が持っているメソッドのみ
// そのためこの方法でメソッドを登録しても
// 実行時に「spriteにはonFrameなんてメソッドがありません」とエラーになる
[self.sprite schedule:@selector(onFrame:)];
}
return self;
}
MSObjectCocos2dCocos2dCocosNode使



MSObjectSpriteMSTGObject使
MSTGObject *ship = [MSTGObjectFactory ship];
MSTGObject *bullet = [MSTGObjectFactory bullet];

Macbook Air (Early 2008)にMac OS X 10.6 Snow Leopardをインストールしてみた

Twitter
iMacMacBook Air2Air

(2009/08/30) QuickSilver
(2009/09/13) 64bit Kernel



4050OK



Dock41

10.410.510.6QuickSilverTextMateTweetie
http://d.hatena.ne.jp/Psychs/20090828/1251467136

4使MacBook使MacBook Air3000


使
FirefoxOKMulticlutch使
XcodeiPhone SDK
TextMateOmniFocusEvernoteDropBoxGrowlATOK2008 for Mac
MacPort1.71.8Snow Leopard1.8sudo port uninstall installedinstall
QuickSilverβhttp://code.google.com/p/blacktree-alchemy/downloads/list使


使
SIMBL使32使TerminalColourMenuMetersQuickSilver
SIMBL


64bit kernel
MacBook Air(Early 2008)64bit
Boot mode64bit32bitEvernoteFirefoxEvernote



使MacBook Air使SIMBLSafari

Apple Store

2009年8月23日日曜日

vimのProjectプラグインまとめ

Python HackathonProject



http://www.vim.org/scripts/script.php?script_id=69



http://d.hatena.ne.jp/hidde/20080930/1222776171
http://d.hatena.ne.jp/hirono_hideki/20090816/1250365295
http://blog.kaihatsubu.com/archives/001438.html



\c 
\C \c
\r 
\R \r
\w 
\W 
Space 



使
\C\R使:w

Python Hackathon #1に参加してきました

http://atnd.org/events/649

Python Hackathon #1v





id:tokibitodjango
Google App Engine Kay使
Python
3Python0

稿
18PyPywxPythonPyQtjQuery

18@moriyoshi

iPhone 3GS





http://www.yamachan.co.jp/index.html
31







Twitterid:mopemope

2009年8月10日月曜日

cocos2dのドキュメントをdoxygenで生成してみました



cocos2ddoxygenXcode
http://www.cocos2d-iphone.org/archives/358




cocos2d for iPhone 0.8

doxygenMacPorts使


doxygen
cocos2d for iPhonecocos2d-iphone.xcodeprojXcodecocos2d-documentation調DOXYGEN_PATHdoxygen/opt/local/bin/doxygencocosed-documentation




~/Library/Developer/Shared/Documentation/DocSets/
DocSet
Xcodedoxygen

何でもいいから作ってみようと思って作った結果がこれだよ!



orz
cocos2d





(2009/08/30) http://akisute.com/2009/08/blog-post_29.html



Java
class Parent {
    private String name;
    public Parent(String name) {
        this.name = name;
    }
}

class Child extends Parent {
    int age;
    public Child(int age) {
        // デフォルトコンストラクタがないし、明示的にSuper(String)を呼んでいない
        this.age = age;
    }
}

class Parent {
    private String name;
    public Parent(String name) {
        this.name = name;
    }
}

class Child extends Parent {
    int age;
    public Child(int age) {
        super("child");
        this.age = age;
    }
}

public static void main(String[] args) {
    // ChildにはSuperのコンストラクタが継承されないのでこれはできない
    Child child = new Child("akisute");
}
Objective-C

@interface Parent : NSObject {
    NSString *name;
}
@end

@interface Child : Parent {
    int age;
}
@end

@implementation Parent
    - (id)initWithName:(NSString *)aName
    {
       if (self = [super init])
       {
           name = aName;
       }
       return self;
    }
@end

@implementation Child
    - (id)initWithAge:(int)anAge
    {
        // Parentにはinitが無いが、NSObjectにはあるので
       if (self = [super init])
       {
           age = anAge;
       }
       return self;
    }
@end

int main (int argc, char const *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    // Childには無いinitWithNameが呼び出せてしまう
    Child *child = [[[Child alloc] initWithName:@"akisute"] autorelease];
    NSLog(@"@%", child);
    [pool release];
    return 0;
}
cocos2d使SpriteSpriteinitWithFile:initWithTexture:使
@interface MSObject : NSObject {
    /** Sprite for this object. Can be changed to AtlasSprite for further performance. */
    Sprite *sprite;
    /** Hit box size */
    CGSize hitBoxSize;
}
APISpriteAtlasSprite

2009年8月8日土曜日

cocos2d細かいところメモ

cocos2d使


CCLOGccMacros.h
#ifdef DEBUG
#define CCLOG(...) NSLog(__VA_ARGS__)
#else
#define CCLOG(...) do {} while (0)
#endif
DEBUGdefine使



CGPoint便
    // 二つのベクトルのdot(内積)とlength(ベクトルの長さ)を計算してcosθを求める
float dot = ccpDot(lastAccerelometerVector, convertedVector);
float a = ccpLength(lastAccerelometerVector);
float b = ccpLength(convertedVector);
float cosTheta = dot / (a*b); // 注意:a*bが0だとゼロ除算で死にます。真似しないでね><
// 角度→ラジアン変換用のマクロ。逆ももちろんあります
float threshold = cos(CC_DEGREES_TO_RADIANS(120.0));
Chipmun
kcocos2d使



Cocoa TouchAudio Queue Service, OpenAL, AVAudioPlayer, Audio Unitcocos2d
CocosDenshionSimpleAudioEngine
sound-engine
SimpleAudioEngine使
        // prefetch sound resources
SimpleAudioEngine *audioEngine = [SimpleAudioEngine sharedEngine];
[audioEngine preloadEffect:@"bell.aif"];
[audioEngine preloadEffect:@"gong.aif"];
[audioEngine playEffect:@"gong.aif"];
playEffectplayBGMBGM使
SimpleAudioEngineCocosDenshion使CocosDenshioncocos2d2500500http://www.cocos2d-iphone.org/wiki/doku.php/cocosdenshion:license


cocos2d 

2009年8月7日金曜日

cocos2d for iPhone Project Template v0.8 真似して作ってみました


cocos2dhttp://d.hatena.ne.jp/Seasons/20090511/1241990196id:Seasonscocos2did:Seasons


http://d.hatena.ne.jp/griffin-stewie/20090315/p1

git使
http://github.com/akisute/cocos2d-xcode-template/tree/master



download0.8
~/Library/Application Support/Developer/Shared/Xcode/Project Templates
.git.gitignore
使git使



id:Seasons0.8beta使cocos2d0.8beta0.8
cocos2dREADMELICENSE


id:Seasons


(一)使cocos2d0.8

(二)/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application~/Library/Application Support/Developer/Shared/Xcode/Project Templates

(三)MenuSceneGameSceneMainScene

(四)GCC_PREPROCESSOR_DEFINITIONSDEBUGCCLOG

(五)Apple

(六)

(七)使depreciated[[Director sharedDirector ] setDeviceOrientation:CCDeviceOrientationLandscapeRight];使




Xcode


XcodeXcode
xcodeprojTemplateIcon.icnsTemplateInfo.plist

libhogehoge.aantbuild.xml

___PROJECTNAMEASIDENTIFIER___.pchPrefix Header

___PROJECTNAMEASIDENTIFIER___-Info.plistInfo.plist

main.m


Xcode

2009年8月4日火曜日

cocos2d for iPhoneをためしてみました


YourTurncocos2d for iPhone(http://code.google.com/p/cocos2d-iphone/)使cocos2d for iPhoneiPhone2DFPSBGM2D

Tic Tac Toe
 http://github.com/akisute/Cocos2DTest/tree/master
 http://gist.github.com/160244
 http://gist.github.com/160246

RPG