<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6290504626246207552</id><updated>2011-07-31T05:28:52.401+09:00</updated><category term='3D'/><category term='VectorRumble'/><category term='XNA'/><title type='text'>myXNA</title><subtitle type='html'>XNAでゲームを作る記録
間違い勘違い思い込み多数</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-7905225408180567977</id><published>2010-05-17T15:10:00.002+09:00</published><updated>2010-05-17T17:49:08.707+09:00</updated><title type='text'>Simple Animationのサンプルを作る</title><content type='html'>モデルを読み込むだけでなくて、モデルが動く&lt;br /&gt;関節が必要　ModelBoneクラス&lt;br /&gt;fbx形式だと読み込みやすい？&lt;br /&gt;fbx形式のモデルが吐き出せるアプリを持ってない。&lt;br /&gt;tank.fbxのどこに関節があるかをビュワーで確認したい。&lt;br /&gt;Softimage Mod Toolでできそうだけど、使い方がさっぱりわからん。&lt;br /&gt;ビュワーだけでいいのに。&lt;br /&gt;関節の位置を見ることはできたけど、作ることができない。ModTool覚えるのはいやだなー&lt;br /&gt;このサンプルは読み込みは確かにシンプルだけど、&lt;br /&gt;モデルの作り方がさっぱりわからん。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-7905225408180567977?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/7905225408180567977/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2010/05/simple-animation.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/7905225408180567977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/7905225408180567977'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2010/05/simple-animation.html' title='Simple Animationのサンプルを作る'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-6010262616460135767</id><published>2010-05-12T15:41:00.015+09:00</published><updated>2010-05-13T19:06:44.689+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>3D描画のためにのメモ</title><content type='html'>&lt;ol&gt;&lt;li&gt;頂点を定義する&lt;br /&gt;VertexPositionColorクラスをつくる、ほかにも頂点の型がある&lt;/li&gt;&lt;li&gt;頂点宣言をする&lt;br /&gt;GraphicsDeviceのプロパティーVertexDeclarationに対して、&lt;br /&gt;VertexDeclarationクラスで指定する&lt;/li&gt;&lt;li&gt;ラスタライズする&lt;br /&gt;シェーダを使って頂点データをピクセルのあつまりに変換したりする&lt;br /&gt;頂点シェーダ（座標変換など）、ピクセルシェーダ（ピクセル化したり）がある&lt;br /&gt;シェーダの処理は、エフェクトによって行われる&lt;br /&gt;エフェクトは1つか複数のテクニックを持ち、テクニックは1つか複数のパスを持つ&lt;br /&gt;パスは頂点シェーダ、ピクセルシェーダの定義&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;ラスタライズはBasicEffectを使う。Effectは自分でつくれるけど難しい&lt;br /&gt;&lt;br /&gt;ビュー変換しなかったら、座標は中心が０で-1（左、上）から1（右、下）まで。サイズ変更しても。&lt;br /&gt;&lt;br /&gt;ワールド変換、ビュー変換、射影変換&lt;br /&gt;BasicEffect.World&lt;br /&gt;BasicEffect.View&lt;br /&gt;BasicEffect.Projection&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-6010262616460135767?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/6010262616460135767/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2010/05/3d.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/6010262616460135767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/6010262616460135767'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2010/05/3d.html' title='3D描画のためにのメモ'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-8391545365516879356</id><published>2010-05-12T14:13:00.000+09:00</published><updated>2010-05-12T14:13:28.383+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>再履修</title><content type='html'>あまりに地味すぎてあきてしまったので、再履修。&lt;br /&gt;今度は３Dを目指す。基本的にわからないことだらけなので、作業メモにしたい&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-8391545365516879356?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/8391545365516879356/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2010/05/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/8391545365516879356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/8391545365516879356'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2010/05/blog-post.html' title='再履修'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-4216602224459928074</id><published>2009-11-19T18:30:00.003+09:00</published><updated>2009-11-19T18:33:39.514+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>アイテムと武器の変更</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qT-8S1hoVWU/SwUOY6Wn6tI/AAAAAAAABVw/D9jp7LBJaV8/s1600/011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qT-8S1hoVWU/SwUOY6Wn6tI/AAAAAAAABVw/D9jp7LBJaV8/s200/011.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;難しいところが出てきて、ちょっとやる気が減ってたというのもちょこっとあるけど、仕事が忙しかったのでなかなか進まなかった。&lt;br /&gt;&lt;br /&gt;PowerUp　　　　　　　　　　アイテムのActor、これを継承する&lt;br /&gt;DoubleLaserPowerUp　　武器強化のアイテム&lt;br /&gt;DoubleLaserWeapon　　　弾2個分 同時に生成する武器&lt;br /&gt;&lt;br /&gt;単純に弾を2個同時につくっているのにびっくりした。 さらなる弾強化の3つ同時も同様にやる。&lt;br /&gt;貫通レーザーとかも、当たった時に消さずにそのまま残すだけでできそう。&lt;br /&gt;&lt;br /&gt;この武器変更の仕組みはシューティングで使いまわせそう。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame009.zip?attredirects=0&amp;amp;d=1"&gt;205K&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-4216602224459928074?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/4216602224459928074/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_19.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/4216602224459928074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/4216602224459928074'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_19.html' title='アイテムと武器の変更'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qT-8S1hoVWU/SwUOY6Wn6tI/AAAAAAAABVw/D9jp7LBJaV8/s72-c/011.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-6074625671655626559</id><published>2009-11-12T13:34:00.001+09:00</published><updated>2009-11-12T13:35:06.541+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>アステロイド追加</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qT-8S1hoVWU/SvuNh7CGq_I/AAAAAAAABQ4/-s484KbbvfY/s1600-h/010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qT-8S1hoVWU/SvuNh7CGq_I/AAAAAAAABQ4/-s484KbbvfY/s200/010.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;アステロイドActorを追加。&lt;br /&gt;新しい種類のActorの追加のやり方がわかる。これで、敵の種類が増えても大丈夫。&lt;br /&gt;追加の際に、重ならないように出現場所をWorldクラスのFindSpawnPoint()であいてる場所を探す。&lt;br /&gt;衝突判定後、AdjustVelocities()でActorの速度を調整する。&lt;br /&gt;しかしこれが難しくてわからない。&lt;br /&gt;円の衝突をモデル化すると、衝突時、ぶつかり合う円の中心同士を結んだベクトルがあり、衝突面は、このベクトルに直行したものになる。衝突面に対して、入射角度と反射角度は同じになるので、衝突面方向、中心同士を結んだ方向に速度の成分を分けて考える。というぐらいまでで、どうしてこういう計算になるんだろうか？&lt;br /&gt;&lt;br /&gt;ここはとりあえずわからないので飛ばす。やっぱりわからんとこ出てきたなあ。&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame008.zip?attredirects=0&amp;amp;d=1"&gt;205KB&lt;/a&gt;）&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c-sharp;"&gt;private static void AdjustVelocities(Actor actor1, Actor actor2) {&lt;br /&gt; if(actor1.Mass &lt;= 0f || actor2.Mass &lt;= 0f) {&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt; Vector2 collisionNormal = Vector2.Normalize(actor2.Position - actor1.Position);&lt;br /&gt; Vector2 collisionTangent = new Vector2(-collisionNormal.Y, collisionNormal.X);&lt;br /&gt;&lt;br /&gt; float velocityNormal1 = Vector2.Dot(actor1.Velocity, collisionNormal);&lt;br /&gt; float velocityTangent1 = Vector2.Dot(actor1.Velocity, collisionNormal);&lt;br /&gt; float velocityNormal2 = Vector2.Dot(actor2.Velocity, collisionNormal);&lt;br /&gt; float velocityTangent2 = Vector2.Dot(actor2.Velocity, collisionTangent);&lt;br /&gt;&lt;br /&gt; float velocityNormal1New = ((velocityNormal1 * (actor1.Mass - actor2.Mass))&lt;br /&gt;  + (2f * actor2.Mass * velocityNormal2)) / (actor1.Mass + actor2.Mass);&lt;br /&gt; float velocityNormal2New = ((velocityNormal2 * (actor2.Mass - actor1.Mass))&lt;br /&gt;  + (2f * actor1.Mass * velocityNormal1)) / (actor1.Mass + actor2.Mass);&lt;br /&gt; actor1.Velocity = (velocityNormal1New * collisionNormal) +(velocityTangent1 * collisionTangent);&lt;br /&gt; actor2.Velocity = (velocityNormal2New * collisionNormal) +(velocityTangent2 * collisionTangent);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-6074625671655626559?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/6074625671655626559/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_12.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/6074625671655626559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/6074625671655626559'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_12.html' title='アステロイド追加'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qT-8S1hoVWU/SvuNh7CGq_I/AAAAAAAABQ4/-s484KbbvfY/s72-c/010.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-3518179145403124198</id><published>2009-11-10T22:44:00.001+09:00</published><updated>2009-11-10T22:45:23.875+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>当たり判定　線分と円</title><content type='html'>Actorの持っている円形の領域と線分との当たり判定&lt;br /&gt;&lt;br /&gt;学校で習ったベクトルがようやく役にたつとき！&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qT-8S1hoVWU/SvloqjLNaBI/AAAAAAAABQc/x9ax_dtbyOU/s1600-h/circleLineVec.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qT-8S1hoVWU/SvloqjLNaBI/AAAAAAAABQc/x9ax_dtbyOU/s320/circleLineVec.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;基本的な考え方は、線分ABと点Cを中心とした円を考える。点C線分ABにおろした垂線が、円の中心との最短距離になる。こいつと円の半径を比較して、半径の方が小さかったら当たってない、大きかったらあたっていることになる。また、垂線との交点Hが線分ABの間にないときは、最短距離が、ACになったりBCになったりする。&lt;br /&gt;こんな感じ&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qT-8S1hoVWU/SvlqO1GziBI/AAAAAAAABQk/m38gcc9wT00/s1600-h/circleLineVec2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qT-8S1hoVWU/SvlqO1GziBI/AAAAAAAABQk/m38gcc9wT00/s320/circleLineVec2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;この場合はHCよりもACの方が短い。&lt;br /&gt;&lt;br /&gt;問題はHCの長さを求める計算だけど、まず点Hの場所をベクトルを使って求める。&lt;br /&gt;ベクトルAHはベクトルABをｔ倍したものとできるので、ｔを求めれば場所がわかる。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qT-8S1hoVWU/Svlr2Wpn9sI/AAAAAAAABQs/CsEIrNrqkPI/s1600-h/circleLineVec3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qT-8S1hoVWU/Svlr2Wpn9sI/AAAAAAAABQs/CsEIrNrqkPI/s320/circleLineVec3.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;という式の変形でｔが求められる。&lt;br /&gt;&lt;pre class="brush:c-sharp"&gt;public static bool CircleLineCollide(Vector2 center, float radius,Vector2 lineStart, Vector2 lineEnd, ref CircleLineCollisionResult result) {&lt;br /&gt;&lt;br /&gt; Vector2 AC = center - lineStart;&lt;br /&gt; Vector2 AB = lineEnd - lineStart;&lt;br /&gt; float ab2 = AB.LengthSquared();&lt;br /&gt; if(ab2 &amp;lt;= 0f) {&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt; float acab = Vector2.Dot(AC, AB);&lt;br /&gt; float t = acab / ab2;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ｔが負の場合、または1以上の場合は線分ABからはみ出てるので調整する&lt;br /&gt;&lt;pre class="brush:c-sharp"&gt;if(t &amp;lt; 0.0f) {&lt;br /&gt;  t = 0.0f;//点Hが点Aの場所になる&lt;br /&gt; } else if(t &amp;gt; 1.0f) {&lt;br /&gt;  t = 1.0f;//点Hが点Bの場所になる&lt;br /&gt; } &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;交点は当たり判定通知用の構造体、CircleLineCollisionResultにしまう。&lt;br /&gt;&lt;br /&gt;円の半径と、距離を比較して結果を出す。&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c-sharp"&gt;result.Point = lineStart + t * AB;&lt;br /&gt; result.Normal = center - result.Point;&lt;br /&gt;&lt;br /&gt; float h2 = result.Normal.LengthSquared();&lt;br /&gt; float r2 = radius * radius;&lt;br /&gt; if(h2 &amp;gt; r2) {&lt;br /&gt;  result.Collision = false;&lt;br /&gt; } else {&lt;br /&gt;  result.Normal.Normalize();&lt;br /&gt;  result.Distance = (radius - (center - result.Point).Length());&lt;br /&gt;  result.Collision = true;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return result.Collision;&lt;br /&gt;}&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:c-sharp"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:c-sharp"&gt;きれいに書いてみたかったのでTEXを使ってみた。環境をつくるのがめんどい。&lt;/pre&gt;図は&lt;a href="http://www.osaka-kyoiku.ac.jp/%7Etomodak/grapes/volume.html"&gt;GRAPES&lt;/a&gt;を使ってみました。使い方が独特だけど、簡単に図形がかけてよい感じ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-3518179145403124198?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/3518179145403124198/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_10.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3518179145403124198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3518179145403124198'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_10.html' title='当たり判定　線分と円'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qT-8S1hoVWU/SvloqjLNaBI/AAAAAAAABQc/x9ax_dtbyOU/s72-c/circleLineVec.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-7467560663177511446</id><published>2009-11-09T11:53:00.001+09:00</published><updated>2009-11-09T15:10:27.474+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>弾の発射　Actorの動的な追加</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qT-8S1hoVWU/SveEJ_hEhWI/AAAAAAAABQQ/kcVtEuU3MUE/s1600-h/009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qT-8S1hoVWU/SveEJ_hEhWI/AAAAAAAABQQ/kcVtEuU3MUE/s200/009.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Projectile 射出体（弾）のActor&lt;br /&gt;LaserProjectile　通常弾の実装&lt;br /&gt;Weapon 武器を表す　Shipが持っている&lt;br /&gt;LaserWeapon　通常弾の実装&lt;br /&gt;&lt;br /&gt;このへんがちょっとわかりにくい。&lt;br /&gt;ProjectileはActorなのでGamePlayScreenが自機と同じようにUpdate()とかDraw()を呼び出してくれる。他のActorと当たった時の処理もここ。&lt;br /&gt;WeaponはUpdate()やDraw()にかかわらない部分、弾の発射間隔のカウントとかをする。 同時発射数が決まってるとかだったらここでやるのだろうか？&lt;br /&gt;&lt;br /&gt;だんだん要素が増えてきてしんどい。&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame007.zip?attredirects=0&amp;amp;d=1"&gt;190KB&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-7467560663177511446?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/7467560663177511446/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/actor.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/7467560663177511446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/7467560663177511446'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/actor.html' title='弾の発射　Actorの動的な追加'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qT-8S1hoVWU/SveEJ_hEhWI/AAAAAAAABQQ/kcVtEuU3MUE/s72-c/009.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-1200994124370011400</id><published>2009-11-09T10:57:00.001+09:00</published><updated>2009-11-09T11:00:16.966+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>当たり判定 ２線分の交点</title><content type='html'>Collisionに実装された当たり判定&lt;br /&gt;一生使いまわせる&lt;br /&gt;&lt;br /&gt;2線分の交点。&lt;br /&gt;厚みがない壁などは突き抜けてしまったりするので、移動しているそれぞれのフレームでの移動量（速度）のベクトルと、壁との当たり判定を調べる。&lt;br /&gt;&lt;br /&gt;それぞれの線分の始点、終点をVector2で渡す。交差してる場合は交点を戻す。outはC#の参照渡し。&lt;br /&gt;式を計算を進めて変形して実装している。&lt;br /&gt;詳しい計算式は&lt;a href="http://www.hiramine.com/programming/graphics/2d_segmentintersection.html"&gt;こちら &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c-sharp;"&gt;public static bool LineLineIntersect(Vector2 a, Vector2 b,Vector2 c, Vector2 d, out Vector2 point) {&lt;br /&gt; point = Vector2.Zero;&lt;br /&gt;&lt;br /&gt; double r, s;&lt;br /&gt; double denominator = (b.X - a.X) * (d.Y - c.Y) - (b.Y - a.Y)*(d.X - c.X);&lt;br /&gt;&lt;br /&gt; //分母が０の場合平行&lt;br /&gt; if(denominator == 0) {&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; double numeratorR = (a.Y - c.Y) * (d.X - c.X) - (a.X - c.X)*(d.Y - c.Y);&lt;br /&gt; r = numeratorR / denominator;&lt;br /&gt;&lt;br /&gt; double numeratorS = (a.Y - c.Y)*(b.X - a.X) - (a.X - c.X) * (b.Y - a.Y);&lt;br /&gt; s = numeratorS / denominator;&lt;br /&gt;&lt;br /&gt; //交差しない&lt;br /&gt; if(r &lt; 0 || r &gt; 1 || s&lt;0 || s &gt; 1) {&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; point.X = (float)(a.X + (r * (b.X - a.X)));&lt;br /&gt; point.Y = (float)(a.Y + (r * (b.Y - a.Y)));&lt;br /&gt; return true;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-1200994124370011400?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/1200994124370011400/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_09.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1200994124370011400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1200994124370011400'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_09.html' title='当たり判定 ２線分の交点'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-1365564679146945139</id><published>2009-11-06T16:37:00.001+09:00</published><updated>2009-11-06T16:47:02.460+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>壁との当たり判定２</title><content type='html'>ちょっと考え方が違ってた。&lt;br /&gt;&lt;br /&gt;Actorとの当たり判定と壁との当たり判定を分けているだけだった。&lt;br /&gt;壁は線で定義されているので当たり判定をするとき、後で出てくる弾(Projectile)は動きがはやいので突き抜けてしまったりするのでLineLineIntersect()で、それ以外はCircleLineCollide()で計算する。&lt;br /&gt;当たり判定が起きた時に何かしたいときは、Touch()が呼ばれるように書く。&lt;br /&gt;その後、Touch()を継承する。当たった相手を引数にしてもよいが特に今は何にも使われていない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c-sharp;"&gt;private void MoveWorld(float elapsedTime) {&lt;br /&gt; Vector2 point = Vector2.Zero;&lt;br /&gt;&lt;br /&gt; for(int i = 0; i &amp;lt; actors.Count; ++i) {&lt;br /&gt;  if(actors[i].Dead) {&lt;br /&gt;   continue;&lt;br /&gt;  }&lt;br /&gt; Vector2 movement = actors[i].Velocity * elapsedTime;&lt;br /&gt; if(actors[i].CollidedThisFrame == false) {&lt;br /&gt;  //Actorと&lt;br /&gt;  movement = MoveAndCollide(actors[i], movement);&lt;br /&gt; }&lt;br /&gt; actors[i].Position += movement;&lt;br /&gt;&lt;br /&gt; //壁と&lt;br /&gt; for(int w = 0; w &amp;lt; walls.Length / 2; ++w) {&lt;br /&gt;  if(actors[i] is Projectile) {&lt;br /&gt;   if(Collision.LineLineIntersect(actors[i].Position,&lt;br /&gt;    actors[i].Position - movement, walls[w * 2],walls[w * 2 + 1], out point)) {&lt;br /&gt;    actors[i].Touch(actors[0]);&lt;br /&gt;   }&lt;br /&gt;  } else {&lt;br /&gt;   Collision.CircleLineCollisionResult result = new　Collision.CircleLineCollisionResult();&lt;br /&gt;   if(Collision.CircleLineCollide(actors[i].Position,actors[i].Radius, walls[w * 2], walls[w * 2 + 1],ref result)) {&lt;br /&gt;    float vn = Vector2.Dot(actors[i].Velocity, result.Normal);&lt;br /&gt;    actors[i].Velocity -= (2.0f * vn) * result.Normal;&lt;br /&gt;    actors[i].Position += result.Normal * result.Distance;&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-1365564679146945139?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/1365564679146945139/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_06.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1365564679146945139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1365564679146945139'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post_06.html' title='壁との当たり判定２'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-3474955972894253844</id><published>2009-11-05T11:21:00.001+09:00</published><updated>2009-11-05T11:23:21.846+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>壁との当たり判定</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qT-8S1hoVWU/SvI3ET6bcdI/AAAAAAAABQE/j4MWeq7dJpg/s1600-h/008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qT-8S1hoVWU/SvI3ET6bcdI/AAAAAAAABQE/j4MWeq7dJpg/s200/008.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;壁と、それに対しての当たり判定の追加。&lt;br /&gt;中学生ぐらいのベクトルがようやく役に立った。というか忘れてた。&lt;br /&gt;新しく追加したクラスは&lt;br /&gt;Collision 当たり判定をする　staticなのでオブジェクトを作るわけではない&lt;br /&gt;CollisionResult　当たり判定の結果のオブジェクト&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c-sharp;"&gt;for(int w = 0; w &amp;lt; walls.Length / 2; ++w) {&lt;br /&gt; Collision.CircleLineCollisionResult result = new collision.CircleLineCollisionResult();&lt;br /&gt; if(Collision.CircleLineCollide(actors[i].Position,actors[i].Radius, walls[w * 2], walls[w * 2 + 1],ref result)) {&lt;br /&gt;  float vn = Vector2.Dot(actors[i].Velocity, result.Normal);&lt;br /&gt;  actors[i].Velocity -= (2.0f * vn) * result.Normal;&lt;br /&gt;  actors[i].Position += result.Normal * result.Distance;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;resultに当たり判定の結果や、方向が入っているのでそれを使って位置を修正する。&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame006.zip?attredirects=0&amp;amp;d=1"&gt;170K&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-3474955972894253844?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/3474955972894253844/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3474955972894253844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3474955972894253844'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/blog-post.html' title='壁との当たり判定'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qT-8S1hoVWU/SvI3ET6bcdI/AAAAAAAABQE/j4MWeq7dJpg/s72-c/008.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-5217971174125724439</id><published>2009-11-04T09:14:00.006+09:00</published><updated>2009-11-05T11:06:30.114+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>Shipの動きの入力</title><content type='html'>ベクトルが入ってきて難しくなってきたけど2Dならなんとか。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;Vector2 forward = new Vector2((float)Math.Sin(Rotation),-(float)Math.Cos(Rotation));&lt;br /&gt;Vector2 right = new Vector2(-forward.Y, forward.X);&lt;br /&gt;&lt;/pre&gt;Actorオブジェクトが持っているプロパティーRotation（角度）を使って。&lt;br /&gt;Y軸の正方向に向かって　Vector2 forward&lt;br /&gt;それに直行する右向きの Vector2 right&lt;br /&gt;&lt;br /&gt;スティックを動かしていないときは処理をしない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;float angleDiff = (float)Math.Acos(Vector2.Dot(wantedForward, forward));&lt;br /&gt;&lt;/pre&gt;内積の式の変形より、スティックで入力された角度と、現在のforwardとのなす角を出す。&lt;br /&gt;ベクトルが正規化されているので、計算が簡単になるところがミソ。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;float facing = (Vector2.Dot(wantedForward, right) &amp;gt; 0f) ? 1f : -1f;&lt;br /&gt;&lt;/pre&gt;内積の符号を調べることで、なす角が鋭角か鈍角かを調べることができる。&lt;br /&gt;（符号が正のとき　鋭角、符号が負のとき　鈍角） &lt;br /&gt;この場合、現在の向きに対して直行する右向きのベクトルと、スティックで入力された向き（ベクトル）とを比較している。 よって鋭角の場合は右方向への変化、鈍角のときは左方向への変化になる。&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;if(angleDiff &amp;gt; 0f) {&lt;br /&gt;    Rotation += Math.Min(angleDiff, facing * elapsedTime * rotationRadiansPerSecond);&lt;br /&gt;   }&lt;br /&gt;   Velocity += leftStick * (elapsedTime * speed);&lt;br /&gt;   if(Velocity.Length() &amp;gt; velocityLengthMaximum) {&lt;br /&gt;    Velocity = Vector2.Normalize(Velocity) * velocityLengthMaximum;&lt;br /&gt;   }&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush: c-sharp;"&gt;angleDiffの範囲は０からπまで、０は動いていないのでそれを省く &lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush: c-sharp;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush: c-sharp;"&gt;１秒当たりの向きを変えられる量、速度など１秒当たりで決める。&lt;/pre&gt;&lt;pre class="brush: c-sharp;"&gt;elapsedTimeは経過時間なので掛けることで移動量などが計算できる。 &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-5217971174125724439?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/5217971174125724439/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/11/ship.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/5217971174125724439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/5217971174125724439'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/11/ship.html' title='Shipの動きの入力'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-32436742269421581</id><published>2009-10-30T15:48:00.001+09:00</published><updated>2009-11-06T16:54:53.941+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>ゲーム画面</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qT-8S1hoVWU/SuqJQ6wNrbI/AAAAAAAABP4/ivgktFdaEgk/s1600-h/007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qT-8S1hoVWU/SuqJQ6wNrbI/AAAAAAAABP4/ivgktFdaEgk/s200/007.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;メニューばかりで飽きたので、ゲーム画面を作りだす。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;ここでも基本構造を作らなくては、画面に表示されないので結構しんどかった。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;新しく作ったクラスは&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;LineBatch　　　　画面表示に関するもの&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;VectorPolygon　自機の形などの形の情報&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;GamePlayScreen&amp;nbsp; GameScreenの継承&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Actor　　動くものの&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ship 　　Actorを継承、自機&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;World　　ゲームのステージ、動くものを管理する&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;前と同じでGamePlayScreenのUpdateでWorldをUpdate&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;WorldはすべてのActorをUpdateする。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strike&gt;MoveWorldと分けているのは今後当たり判定を入れた時に、現在の位置と速度などから当たり判定をして障害物などがあったら、変更するため。&lt;/strike&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;ActorのUpdateはゲームパッドの入力から、速度を更新する。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;その他、生きてる死んでるの状態から、自機を追加したりなどの細かいこと 。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;構造は単純だけどやっぱり難しい。&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;これまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame005.zip?attredirects=0&amp;amp;d=1"&gt;170KB&lt;/a&gt;）&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-32436742269421581?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/32436742269421581/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post_30.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/32436742269421581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/32436742269421581'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post_30.html' title='ゲーム画面'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qT-8S1hoVWU/SuqJQ6wNrbI/AAAAAAAABP4/ivgktFdaEgk/s72-c/007.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-887365161529257405</id><published>2009-10-27T11:41:00.003+09:00</published><updated>2009-10-27T11:49:27.232+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>MenuEntry描画を変更</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qT-8S1hoVWU/SuZc89R9y3I/AAAAAAAABPs/3Kr9ybZyCHs/s1600-h/006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qT-8S1hoVWU/SuZc89R9y3I/AAAAAAAABPs/3Kr9ybZyCHs/s200/006.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;より、オブジェクト指向を進め、MenuEntryの更新、描画のためのメソッドを作成、MenuScreen内で、それらを呼び出す形に変更した。これで、更新描画、ともに&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;for(int i = 0; i &amp;lt; menuEntries.Count; i++) {}&lt;br /&gt;&lt;/pre&gt;のかたちで書くことができる。&lt;br /&gt;しかし、描画位置の計算が、MenuScreen側で大まかな位置を決定、MenuEntry側でscaleに合わせて位置を調整とちょっと冗長？な感じになった。&lt;br /&gt;しかし、それぞれのMenuEntryで新たな変数selectionFadeを持てるので、選択状態から外れた瞬間徐々に大きさを戻すというような表現ができるのでよりリッチになった。&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame004.zip?attredirects=0&amp;amp;d=1"&gt;138KB&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-887365161529257405?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/887365161529257405/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/menuentrymenuscreen-forint-i-0-i.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/887365161529257405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/887365161529257405'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/menuentrymenuscreen-forint-i-0-i.html' title='MenuEntry描画を変更'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qT-8S1hoVWU/SuZc89R9y3I/AAAAAAAABPs/3Kr9ybZyCHs/s72-c/006.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-2176233992108953914</id><published>2009-10-26T15:58:00.004+09:00</published><updated>2009-10-26T16:39:09.291+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>GameScreenのUpdate</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qT-8S1hoVWU/SuVGbxIV13I/AAAAAAAABPg/9K9veawTzyg/s1600-h/004.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qT-8S1hoVWU/SuVGbxIV13I/AAAAAAAABPg/9K9veawTzyg/s200/004.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;これまではGameSceenが動的に変化することがなかった。リッチなインターフェースを作るにはアニメーション効果が必要になる。Update()内で表示させる場所などを変化させる。&lt;br /&gt;&lt;br /&gt;特定時間をかけて0から１まで変化するものをつくりアニメーションを作成する。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;bool UpdateTransition(GameTime gameTime, TimeSpan time, int direction) {&lt;br /&gt; float transitionDelta;&lt;br /&gt; if(time == TimeSpan.Zero) {&lt;br /&gt;  transitionDelta = 1;&lt;br /&gt; } else {&lt;br /&gt; transitionDelta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds /  time.TotalMilliseconds);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; transitionPosition += transitionDelta * direction;&lt;br /&gt;&lt;br /&gt; if((transitionPosition &amp;lt;= 0) || (transitionPosition &amp;gt;= 1)) {&lt;br /&gt;  transitionPosition = MathHelper.Clamp(transitionPosition, 0, 1);&lt;br /&gt;                &lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt; return true;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;これによって計算されたプロパティTransitionPositionを表示位置に適用する。&lt;br /&gt;ScreenStateにTransitionOn（表示が現れる）とTransitionOff（表示が消えゆく）が追加された。GameScreenの最初の状態はTransitionOnで指定された長さのアニメーションが終わったら（上の関数がfalseを返したら）状態が変化する。&lt;br /&gt;ScreenManager内のUpdateでScreenStateの状態を確認して、重ねて画面を表示させるかどうか確認する。 &lt;br /&gt;また、文字の透明度をTransitionPositionを利用して変化させる。&lt;br /&gt;&lt;br /&gt;最初に追加したMainMenuScreenのオブジェクトはずっと残っているので注意。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame003.zip?attredirects=0&amp;amp;d=1"&gt;135KB&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-2176233992108953914?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/2176233992108953914/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/gamescreenupdate.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/2176233992108953914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/2176233992108953914'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/gamescreenupdate.html' title='GameScreenのUpdate'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qT-8S1hoVWU/SuVGbxIV13I/AAAAAAAABPg/9K9veawTzyg/s72-c/004.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-279667430363666044</id><published>2009-10-24T18:06:00.003+09:00</published><updated>2009-10-24T18:12:33.736+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>MenuScreenの継承</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qT-8S1hoVWU/SuLAHkQhI8I/AAAAAAAABPM/nkcT246rjdk/s1600-h/002.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qT-8S1hoVWU/SuLAHkQhI8I/AAAAAAAABPM/nkcT246rjdk/s200/002.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;これまではabstractであるMenuScreenを継承してMainManuScreenを実装していた。&lt;br /&gt;実装を変えれば、別のメニューが作れるということは想像できる。&lt;br /&gt;別の実装のOptionsMenuScreenを作って、MainManuScreen内のOptionのMenuEntryを選択したイベント内で、ScreenManagerにaddScreen（）した。&lt;br /&gt;このままでは二つのGameScreenが重なって表示されてしまう。&lt;br /&gt;GameScreenにIsPopupプロパティーを設けて、ポップアップタイプのGameScreenでないときは重なって表示されないように、 ScreenManagerのUpdate()を変更した。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;while(screensToUpdate.Count &amp;gt; 0) {&lt;br /&gt;//GameScreenを後ろから順番に参照する&lt;br /&gt; GameScreen screen = screensToUpdate[screensToUpdate.Count - 1];&lt;br /&gt; screensToUpdate.RemoveAt(screensToUpdate.Count - 1);&lt;br /&gt;&lt;br /&gt; screen.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen);&lt;br /&gt;&lt;br /&gt; if(!otherScreenHasFocus) {&lt;br /&gt;  screen.HandleInput(input);&lt;br /&gt;  otherScreenHasFocus = true;&lt;br /&gt; }&lt;br /&gt;//もしGameScreenがポップアップタイプでなかったら、次のスクリーンは coveredByOthierScreen=trueになる。（覆い隠されている）&lt;br /&gt; if(!screen.IsPopup) {&lt;br /&gt;  coveredByOtherScreen = true;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qT-8S1hoVWU/SuLDPKHWAVI/AAAAAAAABPU/sda54N5INN0/s1600-h/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qT-8S1hoVWU/SuLDPKHWAVI/AAAAAAAABPU/sda54N5INN0/s200/003.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;ここまでのプロジェクト（&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame002.zip?attredirects=0&amp;amp;d=1"&gt;133KB&lt;/a&gt;）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-279667430363666044?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/279667430363666044/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/menuscreen.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/279667430363666044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/279667430363666044'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/menuscreen.html' title='MenuScreenの継承'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qT-8S1hoVWU/SuLAHkQhI8I/AAAAAAAABPM/nkcT246rjdk/s72-c/002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-181784389326268667</id><published>2009-10-23T11:41:00.087+09:00</published><updated>2009-10-23T21:19:57.516+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>VectorRumbleメニュー部分</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuEXzNeOUPI/AAAAAAAABPA/rNUbDDCvuKk/s1600-h/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuEXzNeOUPI/AAAAAAAABPA/rNUbDDCvuKk/s200/001.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;ここまでのプロジェクト(&lt;a href="http://sites.google.com/site/endotast/strage/TestCopyGame001.zip?attredirects=0&amp;amp;d=1"&gt;129K&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ScreenManager&lt;br /&gt;GameScreen&lt;br /&gt;InputState&lt;br /&gt;は、デザインパターン的な扱いになると思う。&lt;br /&gt;これらは使いまわすことができそう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-181784389326268667?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/181784389326268667/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/vectorrumble_23.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/181784389326268667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/181784389326268667'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/vectorrumble_23.html' title='VectorRumbleメニュー部分'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qT-8S1hoVWU/SuEXzNeOUPI/AAAAAAAABPA/rNUbDDCvuKk/s72-c/001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-3573169542996736741</id><published>2009-10-23T11:37:00.000+09:00</published><updated>2009-10-23T11:37:29.659+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='VectorRumble'/><title type='text'>VectorRumbleをよむ</title><content type='html'>ミニゲームなんだけど、これでも要素が多いし、難しいので、最小の要素まで削って、新規作成した自分のプロジェクトに内容を理解しながら移し替えていく（コピペにあらず）作業をすることにした。&lt;br /&gt;すごく時間と手間がかかるが、実際自分で作る時も、一人だとすこしづつビルドして動いているのを確認できないと、モチベーションがもたない。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-3573169542996736741?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/3573169542996736741/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/vectorrumble.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3573169542996736741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3573169542996736741'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/vectorrumble.html' title='VectorRumbleをよむ'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-2694215177809929798</id><published>2009-10-23T11:31:00.000+09:00</published><updated>2009-10-23T11:31:37.642+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>ゲームの作り方</title><content type='html'>プログラミングの入門本をよんで内容は分かるが、いざ自分でゼロから書き出すことができないことはよくあることだ。どんなアプリケーションでも、一つのアプリケーションとしての体裁を作るには、クラスの設計や基本的な書き方というものがあってこれが分からないと、自分で作り上げることは難しいらしい。&lt;br /&gt;先人の知恵に学ぶという意味で&lt;a href="http://creators.xna.com/ja-JP/"&gt;XNAクリエーターズクラブ&lt;/a&gt;のサンプルVectorRumbeを参考に始めることにした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-2694215177809929798?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/2694215177809929798/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post_23.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/2694215177809929798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/2694215177809929798'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post_23.html' title='ゲームの作り方'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-5194502535628039926</id><published>2009-10-22T21:34:00.001+09:00</published><updated>2009-10-22T22:19:03.367+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>XNA準備</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuBPDEN7N6I/AAAAAAAABMI/bH6thuM6QWk/s1600-h/IMG_1691.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuBPDEN7N6I/AAAAAAAABMI/bH6thuM6QWk/s200/IMG_1691.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;C#とXNAの入門書を一通り読んだ、&lt;br /&gt;この2冊は読みやすくてよかった&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuBPHNL7zrI/AAAAAAAABMQ/KxqC458BIzg/s1600-h/IMG_1692.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qT-8S1hoVWU/SuBPHNL7zrI/AAAAAAAABMQ/KxqC458BIzg/s200/IMG_1692.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-5194502535628039926?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/5194502535628039926/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/xna.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/5194502535628039926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/5194502535628039926'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/xna.html' title='XNA準備'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qT-8S1hoVWU/SuBPDEN7N6I/AAAAAAAABMI/bH6thuM6QWk/s72-c/IMG_1691.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-3430785111400348278</id><published>2009-10-22T21:23:00.000+09:00</published><updated>2009-10-22T21:23:44.689+09:00</updated><title type='text'>ゲーム好き３０代へっぽこプログラマーがゲームをつくります</title><content type='html'>みっかぼーずにならずにつづけます&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-3430785111400348278?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/3430785111400348278/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3430785111400348278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/3430785111400348278'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/blog-post.html' title='ゲーム好き３０代へっぽこプログラマーがゲームをつくります'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6290504626246207552.post-1940107807832045573</id><published>2009-10-22T14:35:00.005+09:00</published><updated>2009-10-22T16:50:21.466+09:00</updated><title type='text'>testcode</title><content type='html'>&lt;h1&gt;SyntaxHihglighter Test&lt;/h1&gt;&lt;p&gt;This is a test file to insure that everything is working well.&lt;/p&gt;&lt;br /&gt;&lt;pre class="brush: c-sharp;"&gt;function test() : String&lt;br /&gt;{&lt;br /&gt; return 10;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6290504626246207552-1940107807832045573?l=endo-tax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://endo-tax.blogspot.com/feeds/1940107807832045573/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://endo-tax.blogspot.com/2009/10/testcode.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1940107807832045573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6290504626246207552/posts/default/1940107807832045573'/><link rel='alternate' type='text/html' href='http://endo-tax.blogspot.com/2009/10/testcode.html' title='testcode'/><author><name>endo-ta</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_qT-8S1hoVWU/S-tA5Gw59oI/AAAAAAAABio/VUbH_jMYonM/s1600-R/4602757350_74c311826e_t.jpg'/></author><thr:total>1</thr:total></entry></feed>
