【Xbox360】 XNA Game Studio その5 【C#】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/03/25(火) 13:57:55ID:DksURoh7【Xbox360】 XNA Game Studio その4 【C#】
http://pc11.2ch.net/test/read.cgi/gamedev/1198312422/
XNA Developer Center http://msdn.microsoft.com/directx/XNA/
XNA Game Studio Express http://msdn.microsoft.com/directx/xna/gse/
XNAをはじめよう! http://xna-studio.jp/
■ゲ製wiki
プログラミングガイドなど、基礎技術情報が豊富
http://www23.atwiki.jp/news4xna/
■ゲハwiki
フリーのライブラリ情報などが豊富
http://www16.atwiki.jp/xna360
■マインスイーパ
C#をすでに習得している人向け
http://www.microsoft.com/japan/msdn/vstudio/express/learn/xna/default.aspx
0739名前は開発中のものです。
2008/05/02(金) 19:05:27ID:TCA5qFyW;using Microsoft.Xna.Framework.Graphics;namespace W{class G:Game{static void
Main(){new G().Run();}GraphicsDeviceManager g;SpriteBatch s;Texture2D t;Random
r=new Random();KeyboardState k,l;const int C=41;bool[]f=new bool[C*C];int x=1,
z=1,c,o;BasicEffect e;VertexPositionColor[]v;VertexDeclaration d;G(){g=new
GraphicsDeviceManager(this);for(int i=0;i<C;i++)for(int j=0;j<C;j++)if(i==0||i
==C-1||j==0||j==C-1||(i%2==0&&j%2==0))f[i*C+j]=true;else f[i*C+j]=false;for(
int j=2;j<C-1;j+=2)switch(r.Next(4)){case 0:if(!f[2*C+j-1])f[2*C+j-1]=true;
break;case 1:if(!f[2*C+j+1])f[2*C+j+1]=true;break;case 2:if(!f[C+j])f[C+j]=
true;break;case 3:if(!f[3*C+j])f[3*C+j]=true;break;}for(int i=4;i<C-1;i+=2)for
(int j=2;j<C-1;j+=2)switch(r.Next(3)){case 0:if(!f[i*C+j-1])f[i*C+j-1]=true;
break;case 1:if(!f[i*C+j+1])f[i*C+j+1]=true;break;case 2:if(!f[(i+1)*C+j])f[(i
+1)*C+j]=true;break;}}protected override void LoadContent(){s=new SpriteBatch(
GraphicsDevice);t=new Texture2D(GraphicsDevice,1,1,1,TextureUsage.None,
SurfaceFormat.Color);t.SetData<int>(new int[]{0x7fffffff});e=new BasicEffect(
GraphicsDevice,null);for(int i=0;i<C*C;i++)if(f[i])c++;v=new
VertexPositionColor[c*24+(C*C-c)*6];int p=0;Color A=Color.Tan;for(int i=0;i<C;
0740名前は開発中のものです。
2008/05/02(金) 19:06:02ID:TCA5qFyWVector3(j,1,i+1),A);v[p++]=new VertexPositionColor(new Vector3(j+1,1,i+1),A);v
[p++]=new VertexPositionColor(new Vector3(j,0,i+1),A);v[p++]=new
VertexPositionColor(new Vector3(j+1,1,i+1),A);v[p++]=new VertexPositionColor(
new Vector3(j+1,0,i+1),A);v[p++]=new VertexPositionColor(new Vector3(j,0,i+1),
A);v[p++]=new VertexPositionColor(new Vector3(j+1,1,i+1),A);v[p++]=new
VertexPositionColor(new Vector3(j+1,1,i),A);v[p++]=new VertexPositionColor(new
Vector3(j+1,0,i+1),A);v[p++]=new VertexPositionColor(new Vector3(j+1,1,i),A);v
[p++]=new VertexPositionColor(new Vector3(j+1,0,i),A);v[p++]=new
VertexPositionColor(new Vector3(j+1,0,i+1),A);v[p++]=new VertexPositionColor(
new Vector3(j+1,1,i),A);v[p++]=new VertexPositionColor(new Vector3(j,1,i),A);v
[p++]=new VertexPositionColor(new Vector3(j+1,0,i),A);v[p++]=new
VertexPositionColor(new Vector3(j,1,i),A);v[p++]=new VertexPositionColor(new
Vector3(j,0,i),A);v[p++]=new VertexPositionColor(new Vector3(j+1,0,i),A);v[p++
]=new VertexPositionColor(new Vector3(j,1,i),A);v[p++]=new VertexPositionColor
(new Vector3(j,1,i+1),A);v[p++]=new VertexPositionColor(new Vector3(j,0,i),A);
v[p++]=new VertexPositionColor(new Vector3(j,1,i+1),A);v[p++]=new
0741名前は開発中のものです。
2008/05/02(金) 19:06:31ID:TCA5qFyWVector3(j,0,i),A);}else{v[p++]=new VertexPositionColor(new Vector3(j,0,i),A);v
[p++]=new VertexPositionColor(new Vector3(j+1,0,i),A);v[p++]=new
VertexPositionColor(new Vector3(j,0,i+1),A);v[p++]=new VertexPositionColor(new
Vector3(j+1,0,i),A);v[p++]=new VertexPositionColor(new Vector3(j+1,0,i+1),A);v
[p++]=new VertexPositionColor(new Vector3(j,0,i+1),A);}d=new VertexDeclaration
(GraphicsDevice,VertexPositionColor.VertexElements);}protected override void
Update(GameTime a){l=k;k=Keyboard.GetState();if(k.IsKeyDown(Keys.Left)&&l.
IsKeyUp(Keys.Left))o=o+1&3;if(k.IsKeyDown(Keys.Right)&&l.IsKeyUp(Keys.Right))o
=o-1&3;if(k.IsKeyDown(Keys.Up)&&l.IsKeyUp(Keys.Up))switch(o){case 0:if(!f[(z-1
)*C+x])z--;break;case 1:if(!f[z*C+x-1])x--;break;case 2:if(!f[(z+1)*C+x])z++;
break;case 3:if(!f[z*C+x+1])x++;break;}if(k.IsKeyDown(Keys.Down)&&l.IsKeyUp(
Keys.Down))switch(o){case 0:if(!f[(z+1)*C+x])z++;break;case 1:if(!f[z*C+x+1])x
++;break;case 2:if(!f[(z-1)*C+x])z--;break;case 3:if(!f[z*C+x-1])x--;break;}if
(x==C-2&&z==C-2)Window.Title=new string(new char[]{'\x306D','\x3093','\x304C',
'\x3093','\x306E','\x20','\x58','\x62','\x6F','\x78','\x33','\x36','\x30',
'\x3092','\x3066','\x306B','\x3044','\x308C','\x305F','\x305E','\xFF01'});base
0742名前は開発中のものです。
2008/05/02(金) 19:06:58ID:TCA5qFyWColor.Black);GraphicsDevice.VertexDeclaration=d;e.VertexColorEnabled=true;e.
FogEnabled=true;e.FogStart=0;e.FogEnd=6;e.FogColor=Vector3.Zero;switch(o){case
0:e.View=Matrix.CreateLookAt(new Vector3(x+0.5f,0.2f,z+1),new Vector3(x+0.5f,
0.2f,z),Vector3.Up);break;case 1:e.View=Matrix.CreateLookAt(new Vector3(x+1,
0.2f,z+0.5f),new Vector3(x,0.2f,z+0.5f),Vector3.Up);break;case 2:e.View=Matrix
.CreateLookAt(new Vector3(x+0.5f,0.2f,z),new Vector3(x+0.5f,0.2f,z+1),Vector3.
Up);break;case 3:e.View=Matrix.CreateLookAt(new Vector3(x,0.2f,z+0.5f),new
Vector3(x+1,0.2f,z+0.5f),Vector3.Up);break;}e.Projection=Matrix.
CreatePerspectiveFieldOfView(0.8f,1.3f,0.1f,10);e.Begin();foreach(EffectPass p
in e.CurrentTechnique.Passes){p.Begin();GraphicsDevice.DrawUserPrimitives<
VertexPositionColor>(PrimitiveType.TriangleList,v,0,c*8+(C*C-c)*2);p.End();}e.
End();s.Begin(SpriteBlendMode.AlphaBlend,SpriteSortMode.Immediate,
SaveStateMode.SaveState);for(int i=0;i<C;i++)for(int j=0;j<C;j++)if(!f[i*C+j])
s.Draw(t,new Rectangle(j*4,i*4,4,4),Color.Blue);if(a.TotalGameTime.
Milliseconds/500==0)s.Draw(t,new Rectangle((C-2)*4,(C-2)*4,4,4),Color.White);s
.Draw(t,new Rectangle(x*4,z*4,4,4),Color.White);s.End();base.Draw(a);}}}
■ このスレッドは過去ログ倉庫に格納されています