読者です 読者をやめる 読者になる 読者になる

なかじまの開発ブログ

アプリ開発における備忘録などなど。

MENU

京都のもくもく会「京ゆに」に行ってきた

京都市左京区石原町にあるStudy Roomという場所で毎月開催されている「京ゆに」に行ってきました。 京ゆにとは 京ゆには京都近辺で活動しているコミュニティで、ゲーム開発をしている開発者同士の交流を目的としています。 名前の示す通り、Unity® を使って…

初めてのGlobalGameJamに参加してきました

先週末の土日(他会場は金~日)にGlobal Game Jam(略称:GGJ)に参加してきました!GGJ2017公式サイト GameJamとは ゲーム開発ハッカソン ハッカソンの流れ ハッカソンは一般的に(もしある場合だが)イベントに関する主題に関する1つもしくは複数のプレゼ…

UIScrollViewに追加されたボタンが反応しないときにすること【Objective-C】

UIScrollViewのdelaysContentTouchesをNOにするとボタンが反応するようになります。 scrollview.delaysContentTouches = NO; こちらもどうぞ nsdevelop.hatenablog.com

ふわふわ浮いているようなアニメーション【cocos2d-x】

EaseInOutを使うと、アニメーションに緩急をつけれます。『cpp』 auto sp = Sprite::create("image.png"); sp->setPosition(Vec2(100, 100)); this->addChild(sp); // 浮遊アニメーション sp->runAction(RepeatForever::create(Sequence::create(EaseInOut::…

第一回【ichi pixel】主催者レポート

こんにちは。初回を開催してから1週間経ちました。 ichi pixelの開催が決まって、まだまだ余裕やとか思ってた6月あたりからもう前日かエェ?!ってなってもう開催してから1週間経っちゃってるんですね〜。時が経つのが早すぎて早すぎてあっという間に来月の…

windowに入ったときにマウスカーソルを消す方法【cocos2d-x】

メモ!『AppDelegate.cpp』 bool AppDelegate::applicationDidFinishLaunching() { // (省略) glview->setCursorVisible(false); // (省略) return true; }

スプライトの点滅永久アニメーション【cocos2d-x】

『cpp』 // 点滅させるスプライトの用意 auto sprite = Sprite::create("ファイル名"); sprite->setPosition(Vec2(100, 100)); this->addChild(sprite); // フェードイン/フェードアウトのアニメーションのSequenceを作成 // アニメーションの長さを変えたい…

UITableViewのスクロールをボタンで制御する【Objective-C】

Objective-Cが終わりつつあると感じているなかじまです(´・ω・`)今回はUITableViewのスクロールをUIButtonで制御しつつ、セルの表示に合わせてボタンの表示非表示も一緒にメモします!storyboardのUIViewにUITableViewとUIButtonを2つ設置します。設置したU…

画面起動時にTextFieldを選択された状態にする【Objective-C】

Outlet接続などでUITextFieldを用意。『.h』 @property (weak, nonatomic) IBOutlet UITextField *textField; 起動時に実行されるメソッド内に下記を入力 // textFieldを選択状態にする [textField becomeFirstResponder]; 『.m』 @synthesize textField; //…

指定した秒数後にメソッドを実行する【Objective-C】

3秒遅らせてメソッドを実行させたい場合、次のようにします。 - (void)ahan { NSLog("あ"); } - (void)viewDidLoad { [super viewDidLoad]; // 3秒後にahanメソッドを実行 [self performSelector:@selector(ahan) withObject:nil afterDelay:3.0]; } これだ…

for文で複数のrunActionを実行しつつ最後のアクション終了を取得する方法【cocos2d-x】

タイトルって難しいですね。何が言いたいかっていいますと、複数のスプライトのアニメーションの移動距離が違うと、アニメーションの終了する順番がカウンタに沿ってではなく、バラバラになります。つまり、for文のカウンタ最大値(?)で最後の処理を実行し…

Spriteを格納したVectorをソートする【cocos2d-x】

y座標をもとにしてソートしてみました!『.h』 typedef Vector<Sprite *> SpriteVector; 格納部分は省略します。『.cpp』 // 昇順(y座標がちっちゃい順) SpriteVector sortup(SpriteVector v) { for (int i = 0; i < (int)v.size()-1; i++) { for (int j = 0; j < (i</sprite>…

1つの配列のソートに合わせて、もう1つの配列の順番も変える【Objective-C】

2つの配列を用意。 NSArray *array1 = [NSArray arrayWithObjects:@"さしすせそ", @"かきくけこ", @"あいうえお", @"なにぬねの", @"たちつてと", nil]; NSArray *array2 = [NSArray arrayWithObjects:@"3行目", @"2行目", @"1行目", @"5行目", @"4行目", n…

指定範囲内をタッチしたかどうか【cocos2d-x】

範囲を調べるには『containsPoint』を使います。 // タッチ開始 bool SampleLayer::onTouchBegan(Touch* touch, Event* event) { // 現在のタッチ座標を取得 Point location = touch->getLocation(); // 範囲を設定 x:100 y:100 w:50 h:50 Rect rect = Rect(…

DropBox Core APIを使おう【Objective-C】

データを同期するのに使えます! アプリの登録 下記URLからサインインをしてください。 Dropbox - Sign in『My Apps』の『Create app』から登録します。1.Choose an API Dropbox APIを選択します。2.Choose the type of accsess you need 全てのアクセスを許…

タッチイベントを取得する【cocos2d-x】

『.h』 #include "cocos2d.h" class SampleLayer : public cocos2d::Layer { public: virtual bool init(); // 初期化 /* シングルタップイベント */ // タッチ開始 virtual bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event); // タッチ移…

Rabbian -Rescue Operation- リリースのお知らせ&画面説明

お待たせいたしました!1月末のデジゲー博にて展示しましたRabbian2(仮)を 『Rabbian -Rescue Operation』というタイトルで本日よりリリースいたしました!現在はiOSのみで、価格は120円となっております。(もちろんAndroidもリリースいたしますので、もう…

UITabBarでUIViewControllerを切り替える【Objective-C】

準備 ViewControllerの表示したい場所にUITabBarを設置してください。設置したUITabBarは『ViewController.h』にOutlet接続(名前:tabBar)してください。 そしてTabBarのアイテムと同じ数のViewControllerをInterfaceBuilderに設置してください。そして各View…

UDP通信で送信、受信、タイムアウト処理【Objective-C】

#import <sys/socket.h> #import <netinet/in.h> #import <arpa/inet.h> #import <sys/types.h> bool readflag; // 受信したかどうか 初期値はfalseを代入しておく 送信 // 送信 - (void)dataSend:(NSString *)text { char *cstr = (char *)[text UTF8String]; // 送信したいテキストをchar型に変換 // ソケットの作</sys/types.h></arpa/inet.h></netinet/in.h></sys/socket.h>…

デジゲー博のことと載せていただいた記事まとめ

1月の30日31日に幕張メッセで開催された「デジゲー博SPECIAL in 闘会議2016」に出展をしてまいりました。(初出展!) 「Working of Rabbian」と「Rabbian2(仮)」を展示しました。 (Rabbian2(仮)のプレイの様子) ディスプレイ(?)は当日に考えたので…

なかじまの新作のお知らせ【GO INTO SPACE 2】

お知らせの前に...先日、前に作った『GO INTO SPACE』がアップデートから1年たったというのを友人のLINEで知りました!笑 自分のゲームなのに!『GO INTO SPACE』iOSGO INTO SPACESerina Nakajimaゲーム無料たまごを落とさずに飛ばしつつひたすらスコアを伸…

UserDefaultを使ってデータを永続保存する【cocos2d-x】

メモメモ。。 UserDefaultを取得 UserDefault *userDefault = UserDefault::getInstance(); 保存 int型 userDefault->setIntegerForKey("KEY_INT", 200); 文字 userDefault->setStringForKey("KEY_STRING", "あいうえお"); float型 userDefault->setFloatFor…

音楽の再生、一時停止、停止【Objective-C】

AVFoundationをインポート #import <AVFoundation/AVFoundation.h> 音楽の読み込み NSURL *apUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"ファイル名" ofType@"拡張子(mp3など)"]]; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsO</avfoundation/avfoundation.h>…

【お知らせ】ラビアンのLINEスタンプ販売開始

私が今年に入ってからせっせと描いたラビアンがやっとこさLINEスタンプになりました!全然普段使いできるような感じなんで是非使ってみてください!store.line.me

オリジナルのフォントを使うときにすること【Objective-C】

①好きなフォントをダウンロードし、PCにインストールする。②フォントファイルをプロジェクト内に入れる。③プロジェクトのTARGETS→Info→Custom iOS Target Propertiesに『Fonts provided by application』を追加する。④Itemに追加した『フォント名.拡張子』を…

transformを使って色々アニメーションまとめ【Objective-C】

CGAffineTransformを使ってアニメーション(移動・回転・拡大縮小)しよう! 移動 // 現在の位置からX軸に100, Y軸に200移動 view.transform = CGAffineTransformMakeTranslation(100, 200); // Affine変換された後の位置からX軸に100, Y軸に200移動 view.tr…

UINavigationControllerの画面遷移でModalのようなアニメーションに変更する

前回の記事をちょこっと修正、追加。 - (IBAction)nextBtnTap:(id)sender { CATransition *transition = [CATransition animation]; transition.duration = 0.3; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFuncti…

あけましておめでとうございます。なかじまです。

あけましておめでとうございます。皆さま今年もよろしくお願いいたします!! 気が付けば年が越えて2016年…。作ったアプリの数は片手で数えられるほど…。うーん。これは反省せねばなりません!なので今年は(できれば)1ヶ月に1ゲーム(アプリ)を目標…

UINavigationControllerを使って、画面遷移をする【Objective-C】

最近 UINavigationController の便利さに気づきました。いっぱい画面遷移するアプリだと、UINavigationControllerを使うのがいいと思います。最初からある ViewController に実装する体で進めます。 では InterfaceBuilder に NavigationController を設置し…

ゲームの会話みたいにUITextViewに1つ1つ文字を表示する【Objective-C】

昔にどっかのサイトで見たコードを参考にして作りました。(サイト忘れた) タッチしたら文字が1つ1つ表示されて、表示中にもう一度タッチすると文章が全部表示されます。 適当にInterface BuilderにUITextViewを設置しまして、Outlet接続(名前:textView…

NSMutableArray - NSUserDefaults保存・読み込み・削除・削除確認【Objective-C】

NSMutableArray *marray = [NSMutableArray array]; 保存 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [marray addObject:@"a"]; NSData *marrayData = [NSKeyedArchiver archivedDataWithRootObject:marray]; [defaults setObject:…

指定した月の日数を取得【Objective-C】

// 指定した月が何日あるかを取得する - (int)getdays:(NSInteger)year month:(NSInteger)month { NSDateComponents *comps = [[NSDateComponents alloc] init]; [comps setYear:year]; [comps setMonth:month]; NSCalendar *calendar = [NSCalendar current…

現在の時刻を取得する【Objective-C】

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { NSUInteger units = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *comps </uitouch>…

NSStringを結合【Objective-C】

NSString *text1 = @"あいうえお"; NSString *text2 = @"かきくけこ"; NSString *text3 = [text1 stringByAppendingString:text2]; // 結合 NSLog(@"%@", text3);

iPhoneの音量ボタンの押下イベントを検出【Objective-C】

こちらに素晴らしいサイトがありました。frnk.hatenablog.jpしかし、deprecatedが多いためiOS7.0以降でも動くようにした記事を残します。こちらも参考にしました。 【iOS】【MPVolumeView】スライダー移動で音量を変更したときにシステムの音量表示のオーバ…

UITableViewをスクロールした際に、内容がかぶってしまうを解決【Objective-C】

参考サイト UITableViewのチェックマークがスクロールすると消えてしまう(15498)|teratail スクロールをして見えなくなったセルは、再利用のために情報がなくなってしまうようですね。なので、セル別に情報を保存することによって解決するようです。 カスタ…

UITableViewにオリジナルのセルを表示する【Objective-C】

Interface BuilderにUITableViewとセル追加用のUIButtonを設置。ViewController.hにUITableViewをOutlet接続(名前:_tableView)し、UIButtonはAction接続(名前:addBtnTap)してください。 次にオリジナルのセルを作る準備。CustomTableViewCellという名…

UIImageをパラパラマンガのようにアニメーションさせる【Objective-C】

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 32, 32)]; [self.view addSubview:imageView]; NSMutableArray *imageArray = [NSMutableArray array]; [imageArray addObject:[UIImage imageNamed:@"image1.png"]]; [i…

NSStringをchar*に変換【Objective-C】

メモメモ。 NSString *str = @"1234"; char *cr = (char *)[str UTF8String];

ゲームプログラマーを目指して1年ちょっとの私が買ってよかった書籍まとめ

もう1年以上たったんだなぁとしみじみ(´ω`)私はC言語 → C++ → objective-C の流れで勉強(独学)しました。言語別で、書籍の紹介をします。 C言語 ・『Cの絵本』 一番最初に買った書籍です。 最初だったので、難しすぎると挫折すると思い、易しめそうなこの…

【Twitter】スコアなどのつぶやきにスクショを付ける【Objective-C】

『Social.framework』をXcodeに追加してください。 #import <Social/Social.h> #import <CoreGraphics/CoreGraphics.h> #import <QuartzCore/QuartzCore.h> ツイートボタンの押下処理部分に下記を記述 // スクショを撮る UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0.0f); CGContextRef context = UIGraphic</quartzcore/quartzcore.h></coregraphics/coregraphics.h></social/social.h>…

背景のスクロールをずらして奥行を作る【Objective-C】

タイトルが思いつきませんでした。前回のつづきみたいなものです。前回→UIScrollViewの移動量を取得【Objective-C】 - なかじまブログ 前回設置したUIScrollViewの下に、同じ大きさのUIScrollViewを設置。 そしてViewController.hにOutlet接続をします(名前…

UIScrollViewの移動量を取得【Objective-C】

Interface BuilderにUIScrollViewを設置。設置したUIScrollViewをViewController.hにOutlet接続(名前:scrollView)。 『ViewController.h』 @interface ViewController : UIViewController { float offsetX, offsetY; // UIScrollViewの初期オフセット flo…

NSString型の文字列を値に変換する【Objective-C】

今回は、よく使うint型に変換する方法だけ。(後々追加していくかも) NSString *text = @"12345"; int i = [text intValue]; // または、『text.intValue』 NSLog(@"%d", i); TextFieldに数字を入力して、その値を使いたいときに使えますね。

画面遷移時に次のシーンに変数の値を渡す【cocos2d-x】

こちらを参考にさせていただきました。 cocos2dx シーンからモーダルレイヤーを呼び出す際に変数を渡す方法 - プログラマーのアプリ開発日誌 AClassの変数の値(int a に 7 を代入したとする)を、BClassのシーン移行時に値を受け取る。 『BClass.cpp』 #inc…

シーンとレイヤーをつくる【cocos2d-x】

新しくファイルを作ったとき用のメモ。『SampleLayer.h』 #include <stdio.h> #include "cocos2d.h" class SampleLayer : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); // シーン生成 virtual bool init(); // レイヤー初期化 CREATE_FUNC</stdio.h>…

UIButtonのフォントを変更する【Objective-C】

メモメモ。 button.titleLabel.font = [UIFont fontWithName:@"" size:14]; titleLabel経由しなきゃなんですね。

複数のUIAlertViewのボタン押下処理を管理する【Objective-C】

『ViewController.h』 @interface ViewController : UIViewController <UIAlertViewDelegate> { UIAlertView *alertView1; UIAlertView *alertView2; } 『ViewController.m』 - (IBAction)Button1Tap:(id)sender { alertView1 = [[UIAlertView alloc] initWithTitle:nil message:@</uialertviewdelegate>…

スクリーンショットを取得し、表示する【Objective-C】

便利だなーと思ったのでメモ。Interface Builderに『撮影用のButton』と『スクリーンショット表示用のImageView』を設置。ImageViewはわかりやすく背景を灰色にしてます。 ModeはAspectFitにしました。次に、ViewController.hにUIButtonをAction接続(Shooti…

Interface Builderに設置したUIScrollViewがスクロールしてくれない時に確認すること【Objective-C】

設置したUIScrollViewのcontentSizeを、指定しているか確認しましょう。これを指定しないと、contentSizeのデフォルトサイズがUIScrollViewと同じサイズになるため、スクロールしてくれません。 scrollView.contentSize = CGSizeMake(スクロールさせたい横幅,…