SlideShare a Scribd company logo
1 of 43
WP7 + XNA 携帯でゲームしようぜ! WP7 + XNA - @mimura1133 1
自己紹介 三村 聡志 ID : @mimura1133 このまえセプキャン行ってきたときに NHK に撮られた。 ウェブサイトhttp://mimumimu.net/ ブログhttp://mimumimu.net/blog/ とりあえず、「mimura1133」で何かがヒットします WP7 + XNA - @mimura1133 2
内容 Windows Phone 7ってなに XNAってなあに PCでも使える基本的な開発方法 Windows Phone 7 でつかえること。 WP7 + XNA - @mimura1133 3
入る前に。 Windows Phone 7 日本発売おめでとうございます。 私も Windows Phone 7 ユーザです。 ついでに Windows 7 ユーザです。 でも、Windows 7 Phone ユーザではありません。 WP7 + XNA - @mimura1133 4
Windows Phone ≄ iPhone iPhone は iPhone なのです。 Windows Phone は Windows Phone なのです。 多分無いと思いますが、どこかのおばちゃん、おじちゃんのように、ああ、 Microsoft の iPhone かーなどとは言わないように。 iPhone もWP7も、良いスマートフォンなのです。 WP7 + XNA - @mimura1133 5
WM6 -> Windows Phone 7 超さくさく動くよ! Metro UI の採用でわかりやすいよ! ネイティブコード使えないけどいいよね。 XNAでゲーム書けるよ! WP7 + XNA - @mimura1133 6
Windows Phone 7 でゲーム メニュー内の Games の中に入ってる。 現時点で結構な数のゲームがある。 XNA を使って開発をする。 Xbox の時ほどのもっさりはない。 WP7 + XNA - @mimura1133 7
XNA とは? XNA‘s Not Acronymed (XNAは頭字語ではないよっ! Microsoft 社の簡単かつ本格的なゲーム開発環境 PC と Xbox と Windows Phone をターゲットに出来る。 まさに「3スクリーン+クラウド」の「3スクリーン」ですね! WP7 + XNA - @mimura1133 8
XNA を使う利点 .NET Framework 上となるため、移植性が高いコードが書ける。 ゲームを開発していてありがちな、メモリリークを始めとする、メモリの問題をあまり気にしなくていい。 そもそも C# のパワーを最大限に活かせる! WP7 + XNA - @mimura1133 9
なんでXNAなの DirectX なら、ネイティブコードだよ!  ->XNA ならコード量少なく、楽に書けるよ! そこまで遅くないよ! XNAにしなくても、Managed DirectXってのがあるよ? -> (((;゚Д゚))) それ使うとは、尊敬します。 WP7 + XNA - @mimura1133 10
XNAでの開発手法 WP7 + XNA - @mimura1133 11
必要なもの 気合い、探求心、最後までやろうとする気持ち Windows Vista or 7 3GB 以上のディスクの空き 2GB の メモリ DirectX 10 もしくはそれ以降に対応するグラフィックスカード WDDM 1.1 のドライバ 分からなければ、DirectX Caps Viewer Tool で調べるといいとおもうよ! WP7 + XNA - @mimura1133 12
開発準備 AppHub (http://create.msdn.com/ja-JP) から、ツールをダウンロードしよう! WP7 + XNA - @mimura1133 13
必要条件が揃わない場合 OS が間に合わない場合は、以下で間に合います。 DreamSpark (http://www.dreamspark.com/ ) MSDN AA (各学校に聞いて下さい。 ) MSDN Subscription などなど WP7 + XNA - @mimura1133 14
始めよう。 1.Visual Studio を立ち上げる。 2.新規プロジェクトを作る WP7 + XNA - @mimura1133 15
プロジェクトを作る 1.XNA Game Studio 4.0を選ぶ 2.Windows Phone ゲームを選ぶ 3.名前設定 WP7 + XNA - @mimura1133 16
ターゲットの設定 Windows Phone 7.1 で問題ないと思います。 WP7 + XNA - @mimura1133 17 (Is Not Windows Phone 7.5)
準備完了! WP7 + XNA - @mimura1133 18
コードの流れ Initalize(初期化処理) LoadContent (読み込み処理) 起動 起動 Update(更新処理) Draw(描画処理) ゲーム中 UnloadContent(解放処理) 終了 終了 WP7 + XNA - @mimura1133 19
こう書けばいい LoadContent画像読み込みとか、モデル読み込みのコード Updateコントローラの動きを見て動かすとか、衝突判定とか Draw描画命令をどっさりと UnloadContentリソースの解放処理を書く。(あれば) WP7 + XNA - @mimura1133 20
さんぷる:画像表示 表示させたい画像を「~Content」に持って行く。 WP7 + XNA - @mimura1133 21
さんぷる:画像表示 コード上部「SpriteBatchspriteBatch」付近に下記を追記Texture2D texture LoadContentの TODO: の下に、下記を追記this.texture= this.Content.Load<Texture2D>(“pics”);注:読み込んだ名前に合わせる。今回の場合は 「pics」 Draw の TODO: の下に、下記を追記spriteBatch.Begin();spriteBatch.Draw(this.texture, Vector2.Zero,Color.White);spriteBatch.End(); WP7 + XNA - @mimura1133 22
さんぷる:画像表示 表示された。 (ちなみに、私の写真です。) WP7 + XNA - @mimura1133 23
さんぷる:文字表示 文字を表示するために、フォントを追加する必要が。 ~Content を右クリック ->追加 -> 新しい項目 WP7 + XNA - @mimura1133 24
さんぷる:文字表示 「スプライトフォント」を選択 -> 追加 WP7 + XNA - @mimura1133 25
さんぷる:文字表示 コード上部「SpriteBatchspriteBatch」付近に下記を追記SpriteFont font; LoadContentの TODO: の下に、下記を追記this.font = this.Content.Load<SpriteFont>("SpriteFont1");注:読み込んだ名前に合わせる。 Draw の spriteBatch.Begin();の下に、下記を追記spriteBatch.DrawString(this.font, "HELLO WORLD",Vector2.One,Color.Red); WP7 + XNA - @mimura1133 26
さんぷる:文字表示 頭の上に文字が表示された! WP7 + XNA - @mimura1133 27
簡単だとおもいません? WP7 + XNA - @mimura1133 28
DirectX とかだと。 画面初期化だけでもかなりの量。 画像読み込みだけでもすごい量。 ああ、解放処理も書かなくちゃ。 いやいや、そのまえに jpg だから、デコーダが。 あうあうあー WP7 + XNA - @mimura1133 29
とりあえず、そんなこと考えずにさくっと書けるのがXNA WP7 + XNA - @mimura1133 30
注意点 DirectX と異なり、右手座標系なので注意です。 WP7 + XNA - @mimura1133 31
覚えておくと良さそう SpriteBatch2D でお世話になる。this.spritebatch.Draw()this.spritebatch.DrawString()をよく使う。 this.content.Load<[TYPE]>(“[NAME]”);Content に追加した物を読み込む時につかう。 WP7 + XNA - @mimura1133 32
入力デバイス XNAで標準提供しているデバイス: WP7 + XNA - @mimura1133 33
Windows Phone 7 上なので、タッチを使ってみる。 WP7 + XNA - @mimura1133 34
タッチして画像を動かす コード上部の using… の部分に、下記を追記using Microsoft.Xna.Framework.Input.Touch; Initialize() の TODO: の下に下記を追記TouchPanel.EnabledGestures = GestureType.FreeDrag; WP7 + XNA - @mimura1133 35
タッチして画像を動かす SpriteBatchspriteBatch; がある箇所に下記を追記:Vector2 vec; Initialize() の TouchPanel… の下に下記を追記:this.vec = Vector2.Zero; Update() の TODO: の下に下記を追記:if (TouchPanel.IsGestureAvailable)this.vec= TouchPanel.ReadGesture().Position –               Vector2.One * 100; WP7 + XNA - @mimura1133 36
タッチして画像を動かす Draw() のspriteBatch.Draw(this.texture, Vector2.Zero, Color.White);をspriteBatch.Draw(this.texture, this.vec, Color.White);に書き換える。 WP7 + XNA - @mimura1133 37
タッチして画像を動かす ドラッグにあわせて、画像がうごく。 WP7 + XNA - @mimura1133 38
コメント その他 XNA では 3D をバリバリ使った開発や、Windows Phone 7 をばしばし使った開発、などなどできますが、私より後の、私よりもはるかにできる方に・・頼みます。(ぉ WP7 + XNA - @mimura1133 39
すごいゲームができたらどうしよう! 光の速度で APP HUB に投稿しましょう。 学生なら無料です。どんどん投稿しましょう。 WP7 + XNA - @mimura1133 40
そんなこんなでまとめ。 やる気とがんばりと、ハードウェアとソフトウェアがあれば、開発できる。 結構少ない行数でさくっと書ける。 「俺すげぇ!」になったら、すぐさま APP HUB へ。 Windows Phone 7 のゲームを作って、学校に持っていって、クラスの人気者になろう! WP7 + XNA - @mimura1133 41
最後に XNA – ソーサリフォース (まずはここから)http://sorceryforce.com/xna/ ひにけにXNA (XNA 最先端情報)http://blogs.msdn.com/b/ito/ APP HUB (投稿場所)http://create.msdn.com/ja-JP そんなわけで、どんどん遊びましょう! WP7 + XNA - @mimura1133 42
余談 IDA Pro とかでバイナリみるの大好きな人 C# で開発するのが大好きな人 DLL Injection とかしちゃうぜ! な人 C は好きだぜって人 Windows API はいいよね! 惚れちゃう な人 変態行為(Ex. SUA 使ったお遊び)大好きな人 該当する人 -> ぜひとも連絡先教えてください!Twitter : @mimura1133Facebook : Satoshi Mimura WP7 + XNA - @mimura1133 43

More Related Content

More from Satoshi Mimura

おうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティおうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティSatoshi Mimura
 
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようEdomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようSatoshi Mimura
 
Visual Studio で TeX 編集
Visual Studio で TeX 編集Visual Studio で TeX 編集
Visual Studio で TeX 編集Satoshi Mimura
 
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話Satoshi Mimura
 
アプリ作者と Windows XP
アプリ作者と Windows XPアプリ作者と Windows XP
アプリ作者と Windows XPSatoshi Mimura
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。Satoshi Mimura
 
マシン語によるコード実行
マシン語によるコード実行マシン語によるコード実行
マシン語によるコード実行Satoshi Mimura
 
Iron python と c sharp
Iron python と c sharpIron python と c sharp
Iron python と c sharpSatoshi Mimura
 
Unix と windows 世界の融合
Unix と windows 世界の融合Unix と windows 世界の融合
Unix と windows 世界の融合Satoshi Mimura
 

More from Satoshi Mimura (13)

Inside wsl
Inside wslInside wsl
Inside wsl
 
Inside wsl
Inside wslInside wsl
Inside wsl
 
おうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティおうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティ
 
某Ctf にて writeup
某Ctf にて writeup某Ctf にて writeup
某Ctf にて writeup
 
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようEdomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
 
Visual Studio で TeX 編集
Visual Studio で TeX 編集Visual Studio で TeX 編集
Visual Studio で TeX 編集
 
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話
 
WHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQLWHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQL
 
アプリ作者と Windows XP
アプリ作者と Windows XPアプリ作者と Windows XP
アプリ作者と Windows XP
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
 
マシン語によるコード実行
マシン語によるコード実行マシン語によるコード実行
マシン語によるコード実行
 
Iron python と c sharp
Iron python と c sharpIron python と c sharp
Iron python と c sharp
 
Unix と windows 世界の融合
Unix と windows 世界の融合Unix と windows 世界の融合
Unix と windows 世界の融合
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (7)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Windows Phone 7 と XNA の世界