c# việt nam - kiến thức - [xna] chuyển động của nhân vật trong xna

Upload: meomuop2508

Post on 14-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    1/6

    06/05/2013 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291

    Kin thc Ti liu Video Sn phm Din n Vic lm

    ng bi vit

    Cng ngh

    .Net Framework

    Visual Studio

    C# C Bn

    Thut Ton

    M Hnh Lp Trnh

    C S D Liu

    Giao Din Web

    Asp.Net

    Windows Forms

    WPF

    Metro

    WCF

    Lp Trnh Ha

    Lp Trnh Mng

    Lp Trnh Game

    Lp Trnh Di ng

    Lp Trnh Nhng

    Tm kim

    Nhp t kha:

    Tm

    Lin h

    Mobile: 0977773310

    Thnh vin

    Thnh vin mi: kis_zero

    Tng thnh vin: 21586

    ang online: 8

    Thnh vin online

    7 khch v 1 thnh vinboyhcmc

    [XNA] Chuyn ng ca nhn vt trong XNA

    Lp Trnh Game

    Hng dn ny s gip bn lm quen vi XNA v to chuyn ng nhnvt n gin

    1.chun bdownload XNA game studio 3.1 t trang ca Microsoft ,ci t cho Visual studio 2008to 1 project mi : Visual C#->XNA 3.1->Windows game->OK

    2.Sprite image 2D l g ?Sprite image 2D thc cht l 1 image tp hp tt c cc t th c bn ca nhn vt theo mt qui lutno v d v Sprite image

    ng nhp | ng k

    http://www.facebook.com/pages/Csharpvn/187268401413001?ref=tn_tnmnhttp://www.facebook.com/pages/Csharpvn/187268401413001?ref=tn_tnmnhttp://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1500http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1300http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1100http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=850http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=750http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=650http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=500http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=300http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=100http://www.csharpvn.com/DangKy.aspxhttp://www.csharpvn.com/DangNhap.aspxhttp://www.facebook.com/sharer/sharer.php?s=100&p[title]=%5bXNA%5d+Chuy%e1%bb%83n+%c4%91%e1%bb%99ng+c%e1%bb%a7a+nh%c3%a2n+v%e1%ba%adt+trong+XNA&p[url]=http://www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291&p[summary]=H%c6%b0%e1%bb%9bng+d%e1%ba%abn+n%c3%a0y+s%e1%ba%bd+gi%c3%bap+b%e1%ba%a1n+l%c3%a0m+quen+v%e1%bb%9bi+XNA+v%c3%a0+t%e1%ba%a1o+chuy%e1%bb%83n+%c4%91%e1%bb%99ng+nh%c3%a2n+v%e1%ba%adt+%c4%91%c6%a1n+gi%e1%ba%a3n&p[images][0]=http://i797.photobucket.com/albums/yy252/microstar2/image/XNA%20tut/2.png?t=1274527560http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1300http://www.facebook.com/pages/Csharpvn/187268401413001?ref=tn_tnmnhttp://__dopostback%28%27ctl00%24ctl00%24contentplaceholder1%24uctimkiem1%24linkbutton1%27%2C%27%27%29/http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1500http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1400http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1300http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1200http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1100http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=1000http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=850http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=800http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=750http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=700http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=650http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=550http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=500http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=400http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=300http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=200http://www.csharpvn.com/KienThuc_DSKienThuc.aspx?Id=100http://www.csharpvn.com/KienThuc_CapNhat.aspxhttp://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24avieclam%27%2C%27%27%29/http://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24ahoidap%27%2C%27%27%29/http://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24asanpham%27%2C%27%27%29/http://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24avideo%27%2C%27%27%29/http://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24atailieu%27%2C%27%27%29/http://__dopostback%28%27ctl00%24ctl00%24uctopmenu1%24akienthuc%27%2C%27%27%29/
  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    2/6

    06/05/2013 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291

    3.phn tch v d trn- Hng 1 : l tp hp cc t th c bn ca nhn vt khi nhn vt chuyn ng t di ln trn- Hng 2 : l tp hp cc t th c bn ca nhn vt khi nhn vt chuyn ng t tri qua phi- Hng 3 : l tp hp cc t th c bn ca nhn vt khi nhn vt chuyn ng t trn xung di- Hng 4 : l tp hp cc t th c bn ca nhn vt khi nhn vt chuyn ng t phi qua tri

    4.Lm sao to chuyn ng t Sprite ?-Nhn vt hin th trong Game c ct t 1 trong cc t th trong Sprite image trn.Tm gi lkhung ct-Do cc t th xp cch u nhau nn vic xc nh chnh xc khung ct ht sc d dng.C spriteimage c xem nh 1 ma trn 2 chiu cc t th-Khi cn nhn vt chuyn ng. gi s cn nhn vt chuyn ng t di ln trn.Ta s cho ch sdng ca khung ct bng 0 ng thi cho ch s ct lp li t 0->4 v ch stop khi nhn c lnh stop

    t chng trnh.-Nh vy tp hp cc t th nhn vt chuyn ng t di ln c load trong thi gian ngn lm chochng ta c cm gic nhn vt bc i t di ln nh tht vy.-Vi cc hng chuyn ng khc th cng lm tng t nhng phi thay i ch s dng ca khungcn ct cho ng vi hng chuyn ng m ta mong munBi 2 : Code chuyn ng nhn vt trong XNAtrong ca s Solution Explorer tm n Content ->Chut Phi->Add->Existing item->chn 1 c i imagenn(nen.png)+chn sprite trn(man.png)Xy dng lp NhanVat.cs001 usingSystem;

    002 usingSystem.Collections.Generic;003 usingSystem.Linq;

    004 usingMicrosoft.Xna.Framework;

    005 usingMicrosoft.Xna.Framework.Audio;

    006 usingMicrosoft.Xna.Framework.Content;

    007 usingMicrosoft.Xna.Framework.GamerServices;

    008 usingMicrosoft.Xna.Framework.Graphics;

    009 usingMicrosoft.Xna.Framework.Input;

    010 usingMicrosoft.Xna.Framework.Media;

    011 usingMicrosoft.Xna.Framework.Net;

    012 usingMicrosoft.Xna.Framework.Storage;namespacechuyen_dong_nhan_vat

    013 {

    014 publicclassNhanVat

    015 {

    016 privateGame1 Game;

    017 privateTexture2D text;//sprite nhan vat

    018 privatePoint khungnhin=newPoint(0,0);//vi tri khung nhin

    019 privatePoint gioihan=newPoint(5,4);//gioi han khung nhin

    020 privatebytekichthuoc=60;//kich thuoc khung nhin 60x60

    021 privateintbuocChay = 3;//do dai moi buoc nhan vat

    022 privatePoint viTri = newPoint(0,0);//vi tri nhan vat tren man hinh

    023 privateHuongChuyenDong huongChuyenDong;

    024 privatebooldangChay = false;

    025 privateSystem.Windows.Forms.Timer capNhat_X;

    026

    027 publicNhanVat(Game1 game)

    028 {

    029 this.Game = game;

    030 this.capNhat_X = newSystem.Windows.Forms.Timer();

    031 this.capNhat_X.Interval = 100;

    032 this.capNhat_X.Enabled = true;

    033 capNhat_X.Tick += newEventHandler(capNhat_X_Tick);

    034 }

    035

    036 privatevoidcapNhat_X_Tick(objectsender, EventArgs e)

    037 {

    038 //X chay tu 0->4

    039 //cap nhat dong tac nhan vat

    040 if(dangChay)

    041 {

  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    3/6

    06/05/2013 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291

    042 if(this.khungnhin.X < this.gioihan.X - 1)

    043 {

    044 this.khungnhin.X += 1;

    045 }

    046 elsethis.khungnhin.X = 0;

    047 }

    048 elsethis.khungnhin.X = 0;

    049 }

    050 publicvoidLoadContent(ContentManager Content)

    051 {

    052 this.text = Content.Load("man");053 }

    054 publicvoidUpdate()

    055 {

    056 KeyboardState keys = Keyboard.GetState();

    057 if(keys.IsKeyDown(Keys.Left))

    058 {

    059 //di chuyen tu phai qua trai

    060 huongChuyenDong = HuongChuyenDong.PhaiQuaTrai;

    061 DiChuyen();

    062 return;

    063 }

    064 if(keys.IsKeyDown(Keys.Right))

    065 {

    066 //di chuyen tu trai qua phai

    067 huongChuyenDong = HuongChuyenDong.TraiQuaPhai;

    068 DiChuyen();

    069 return;

    070 }

    071 if(keys.IsKeyDown(Keys.Up))

    072 {

    073 //di chuyen tu duoi len tren

    074 huongChuyenDong = HuongChuyenDong.DuoiLenTren;

    075 DiChuyen();

    076 return;

    077 }

    078 if(keys.IsKeyDown(Keys.Down))

    079 {

    080 //di chuyen tu tren xuong

    081 huongChuyenDong = HuongChuyenDong.TrenXuongDuoi;

    082 DiChuyen();

    083 return;

    084 }

    085 this.dangChay = false;

    086 }

    087 publicvoidDraw(SpriteBatch spriteBatch)

    088 {

    089 spriteBatch.Begin();

    090

    spriteBatch.Draw(this.text, newRectangle(this.viTri.X,this.viTri.Y,this.kichthuoc,this.kichthuoc), newRectangle(this.khungnhin.X *this.kichthuoc, this.khungnhin.Y *

    this.kichthuoc,this.kichthuoc,this.kichthuoc), Color.White, 0, Vector2.Zero,SpriteEffects.None, 0);

    091 spriteBatch.End();

    092 }

    093 privatevoidDiChuyen()

    094 {

    095 this.dangChay = true;

    096 //Y chay tu 0->3

    097

    098 //cap nhat huong chay

    099 if(huongChuyenDong == HuongChuyenDong.DuoiLenTren)

    100 {

    101 this.viTri.Y -= this.buocChay;

    102 this.khungnhin.Y = 0;

  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    4/6

    06/05/2013 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291

    103 }

    104 elseif(huongChuyenDong == HuongChuyenDong.TrenXuongDuoi)

    105 {

    106 this.viTri.Y += this.buocChay;

    107 this.khungnhin.Y = 2;

    108 }

    109 elseif(huongChuyenDong == HuongChuyenDong.TraiQuaPhai)

    110 {

    111 this.viTri.X += this.buocChay;

    112 this.khungnhin.Y = 1;

    113 }114 elseif(huongChuyenDong == HuongChuyenDong.PhaiQuaTrai)

    115 {

    116 this.viTri.X -= this.buocChay;

    117 this.khungnhin.Y = 3;

    118 }

    119 raNgoaiBanDo();

    120

    121 }

    122 privatevoidraNgoaiBanDo()

    123 {

    124 intxMax = this.Game.Window.ClientBounds.Width;

    125 intyMax = this.Game.Window.ClientBounds.Height;

    126 if(viTri.X < 0) this.viTri.X += buocChay;

    127 if(viTri.X > xMax-kichthuoc) this.viTri.X -= buocChay;

    128 if(viTri.Y < 0) this.viTri.Y += buocChay;

    129 if(viTri.Y + buocChay > yMax-kichthuoc) this.viTri.Y -= buocChay;

    130

    131 }

    132 }

    133 }

    xy dng enum HuongChuyenDong.cs01 usingSystem;

    02 usingSystem.Collections.Generic;

    03 usingSystem.Linq;

    04 usingSystem.Text;namespacechuyen_dong_nhan_vat

    05 {

    06 publicenumHuongChuyenDong07 {

    08 TraiQuaPhai,

    09 PhaiQuaTrai,

    10 TrenXuongDuoi,

    11 DuoiLenTren,

    12 }

    13 }

    code trong Game1.cs nh sau01 usingSystem;

    02 usingSystem.Collections.Generic;

    03 usingSystem.Linq;

    04 usingMicrosoft.Xna.Framework;

    05 usingMicrosoft.Xna.Framework.Audio;06 usingMicrosoft.Xna.Framework.Content;

    07 usingMicrosoft.Xna.Framework.GamerServices;

    08 usingMicrosoft.Xna.Framework.Graphics;

    09 usingMicrosoft.Xna.Framework.Input;

    10 usingMicrosoft.Xna.Framework.Media;

    11 usingMicrosoft.Xna.Framework.Net;

    12 usingMicrosoft.Xna.Framework.Storage;

    13

    14 namespacechuyen_dong_nhan_vat

    15 {

    16

    17 publicclassGame1 : Microsoft.Xna.Framework.Game

    18 {

  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    5/6

    06/05/2013 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    www.csharpvn.com/KienThuc_ChiTietKienThuc.aspx?Id=291

    19 privateGraphicsDeviceManager graphics;

    20 privateSpriteBatch spriteBatch;

    21 privateNhanVat nhanVat;

    22 privateTexture2D nen;

    23 publicGame1()

    24 {

    25 graphics = newGraphicsDeviceManager(this);

    26 Content.RootDirectory = "Content";

    27 nhanVat = newNhanVat(this);

    28 }

    29 30 protectedoverridevoidInitialize()

    31 {

    32

    33 base.Initialize();

    34 }

    35

    36 protectedoverridevoidLoadContent()

    37 {

    38 spriteBatch = newSpriteBatch(GraphicsDevice);

    39 this.nen = Content.Load("nen");

    40 this.nhanVat.LoadContent(this.Content);//load sprite cua nhan vat

    41 }

    42

    43 protectedoverridevoidUnloadContent()

    44 {

    45

    46 }

    47

    48 protectedoverridevoidUpdate(GameTime gameTime)

    49 {

    50

    51 if(GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

    52 this.Exit();

    53 this.nhanVat.Update();//update chuyen dong nhan vat

    54 base.Update(gameTime);

    55 }

    56 57 protectedoverridevoidDraw(GameTime gameTime)

    58 {

    59 GraphicsDevice.Clear(Color.CornflowerBlue);

    60 spriteBatch.Begin();

    61 spriteBatch.Draw(this.nen,newVector2(0,0),Color.White);

    62 spriteBatch.End();

    63 this.nhanVat.Draw(this.spriteBatch);//ve nhan vat len man hinh

    64 base.Draw(gameTime);

    65 }

    66 }

    67 }

    xong ri ! y l kt quby gi nhn cc phm nhn vt s chuyn ng rt mt

  • 7/27/2019 C# Vit Nam - Kin thc - [XNA] Chuyn ng ca nhn vt trong XNA

    6/6

    ng

    ang xem trang ny: 1 ngi. Trong c:0 thnh vin

    Kin thc | Ti liu | V ideo | Hi p | Sn phm | V ic lm

    Copyright C# Vit Nam 2010 - 2013

    http://www.csharpvn.com/ViecLam_Default.aspxhttp://www.csharpvn.com/SanPham_Default.aspxhttp://www.csharpvn.com/HoiDap_DSHoiDap.aspxhttp://www.csharpvn.com/Video_Default.aspxhttp://www.csharpvn.com/TaiLieu_Default.aspxhttp://www.csharpvn.com/KienThuc_Default.aspx