• Save
20121006 mame_pub
Upcoming SlideShare
Loading in...5
×
 

20121006 mame_pub

on

  • 1,204 views

 

Statistics

Views

Total Views
1,204
Views on SlideShare
720
Embed Views
484

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 484

http://www.fisproject.jp 484

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

20121006 mame_pub 20121006 mame_pub Presentation Transcript

  • FiS Project MameRoot Go言語の基礎 -おまけ- “cocos2d でつくるiOSパーティゲーム” 
  • • HN : MameRoot• HP : http://www.fisproject.jp/• Mail : japan.t.egawa@gmail.com
  • モバイルのこれから スマホ/タブレットの市場拡大 ↓ミュージック/ゲーム/インターネット/NFC...を同時に ↓ マルチタスク/マルチコア/メニーコア モバイル(システムコア含め)の高度化 アプリ間連携など並列処理の複雑化
  • ハードからみる高度化ムーアの法則“ トランジスタの集積度は1.5~2年で2倍 ” → 高クロック需要低下/物理限界(?) / リーク電流 / 熱密度→ マルチコアの方向性アムダールの法則“ 並列化によるシステムへの性能向上は、並列でない部分によって飽和する”→ マルチコアを導入するだけでは効果が薄い→ ハードを生かすも殺すもプログラミング次第
  • 組み込み系ソフト開発言語 RTOS - C/C++ iOS/Android Kernel - C MobileApplication - Objective-C, Java , JS, HTML5RTOS/システムのコア部分 “ C系統の言語がほとんど。 そりゃ、コンパイル言語は速いもん!”モバイルアプリ開発 “ FacebookのiOSアプリもHTML5から ネイティブのobjcになった。応答性は大事!”
  • 少しC/C++を振り返る 誕生日 C from 1972 , C++ from 1983 手続き型、コンパイル型 言語パラダイム (C++ オブジェクト指向) 並列処理 マルチスレッド マルチコア API (OpneMPとか) malloc / freeなどで手動管理 メモリ管理 又は、GCライブラリ 低レイヤーの処理の記述 その他特徴 ポインタ/入門言語 /高い移植性マルチコア/マルチスレッド時代に手動でメモリ管理は大変。
  • Go言語 誕生日 2009 by Google 言語パラダイム コンパイル型、オブジェクト指向 並列処理,マルチコア goroutine (軽量/メモリ共有/自動) メモリ管理 ガベージコレクション 静的言語なのに動的言語のような記述 その他特徴 クラスはないので継承がない 手軽に並列処理できるし、速い!!(...速くなる予定) 現代システムに合わせた言語設計 OS設計言語からアプリ開発にも使えそう
  • Hello World
  • Go Cpackage main 簡単なI/Oのパッケージ #include <stdio.h>import "fmt" int main(void){ printf("Hello, World!n");func main() { return 0; fmt.Printf("helloworldn") }} mainからスタート “C言語となんとなく似ている...!!開発者はUNIXの親。そう、UNIXといえばC”
  • Method
  • Go Objective-Ctype Rect struct{ [変数名][型]の順 @interface RectSample : NSObject{! ! length int int length;! ! name string NSString *name; }} -(void)intro;func main(){ @end! Array := make([]Rect,5)  @implementation RectSample! for i := 0; i < len(Array); i++{! ! Array[i].length = i+1 -(void)intro{! ! Array[i].name = "四角" name = @"四角";! ! println(Array[i].intro()) for (int i=0; i<=4; i++) {! } length = i + 1; 構造体を NSLog(@"図形は%@で横の長さは%dです",} レシーバにしてメソッドコール  name,length);func (figure Rect) intro()(str string){ }! str = fmt.Sprintf("図形は%sで横の長さは%dです", } figure.name,figure.length) @end! return str} 他にも、型推測 / GC / goroutine/複数値返し... etc effective Go で検索しよう
  • Go基礎 ~まとめ~goroutineなど言語レベルで並列処理を意識した設計将来は MCUとか組み込み系から サーバサイド言語 /OS記述言語 / Androidとかアプリ開発まで幅広く期待ようは “現代風C” なのかな。
  • 今後やりたいことMCUでエルチカ!!
  • -おまけ-「cocos2dでつくるパーティゲーム」 
  • cocos2dとは?cocoa上で動く物理エンジン(box2d) / サウンドエンジンを搭載。OpenGLなので速い。トランジションとかエフェクトとか簡単にできる。しかも豊富。CCNode “画面上の全てのノードの基幹クラス” CCScene : 1つの画面に1シーン。シーンはスタックされる CCLayer : ユーザインプットを受け付ける層。photoshopのレイヤみたいなもん。 CCSprite : 画面上のオブジェクト(イメージとか) CCScene > CCLayer > CCSprite が基本。 “CCNodeのクラスリファレンスは読んでおこう!”
  • こいつり画面構成“シーン遷移は管理クラスをつくると便利”
  • Demo
  • TIPS Particle Designer CCParticleSystem *pc = [CCParticleExplosion node]; pc.duration = 3; // 寿命パラメータ調整 → コンパイル → 確認  → 納得するまでループ... pc.emissionRate = 100;// 生成レート pc.startSize = 2.5f;// 開始時のサイズ pc.endSize = 20.0f; // 終了時のサイズ ccColor4F startColor = {0.6f, 0.8f, 0.8f, 1.0f}; pc.startColor = startColor;// 開始時の色 pc.gravity = ccp(0,0); [self addChild:pc]; id particle = [CCParticleSystemQuad particleWithFile:@"waterPool.plist"]; [particle setPosition:ccp(0, 0)]; [self addChild:particle]; ファイル化して呼び出すだけ(.plist)
  • books http://golang.org/doc/effective_go.html