Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Load ảnh động (gif) vào game với XNA - Tut3

    chào các bạn

    hôm nay mình sẽ hướng dẫn các bạn làm thế nào để load ảnh động (gif) vào XNA

    mở đầu : như các bạn đã biết , mặc định XNA chỉ cho load ảnh tĩnh vào game dưới dạng 1 texture2D mà không cho load ảnh động . đơn giản là ảnh gif có nhiều frame và cấu trúc khác với ảnh tĩnh nên chúng không thể đứng chung đc. XNA framework cũng chẳng có thư viện mở rộng nào để cho phép load ảnh động (gif) cả.

    may mắn thay trong một lần tình cờ lướt google, zstar mò được 1 thư viện cho phép làm việc này. thư viện đó tên là XNAGifAnimation do 1 người tên là Mahdi Khodadadi Fard xây dựng. thư viện mình đính kèm ở dưới. bao gồm 2 file XNAGifAnimationLibrary.dll vs XNAGifAnimationLibrary.Pipeline.dll

    thân bài
    chú ý : thư viện mình đính kèm ở dưới chỉ dùng với XNA 3.0

    mình sẽ hướng dẫn các bạn sử dụng chúng như thế nào

    bước 1 :
    -các bạn tạo 1 project XNA 3.0
    -các bạn add 2 file thư viện (đính kèm ở dưới)tương ứng vào reference của project và reference của Content (xem hình dưới sẽ rõ)
    -add 1 ảnh gif bất kì vào Content. tôi ví dụ là add "explode.gif"


    bước 2: code
    -trong game1.cs

    Mã:
    using XNAGifAnimationLibrary;
    tạo đối tượng GifAnimation

    Mã:
     private GifAnimation gif;
    trong hàm loadcontent

    Mã:
            protected override void LoadContent()        {            spriteBatch = new SpriteBatch(GraphicsDevice);            this.gif = Content.Load<GifAnimation>("Images\\explode");        }
    trong hàm update

    Mã:
            protected override void Update(GameTime gameTime)        {             if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)                this.Exit();            this.gif.Update(gameTime.ElapsedGameTime.Ticks);            base.Update(gameTime);        }
    trong hàm draw

    Mã:
            protected override void Draw(GameTime gameTime)        {            GraphicsDevice.Clear(Color.CornflowerBlue);            spriteBatch.Begin();            spriteBatch.Draw(this.gif.GetTexture(),new Vector2(),Color.White);            spriteBatch.End();            base.Draw(gameTime);        }
    kết quả :


    kết luận
    -mỗi phiên bản của thư viện này chỉ dùng đc cho 1 version của XNA. như tôi attach ở dưới là dùng với XNA 3.0
    -có thư viện này tôi có thể load ảnh gif thoải mái như: ảnh gif minh họa 1 vụ nổ mà tôi ví dụ ở trên.giúp tiết kiệm khá nhiều thời gian để minh họa 1 vụ nổ và tận dụng được ảnh gif có sẵn
    -ko nên dùng quá nhiều ảnh gif trong game. sẽ làm chậm game


    chúc các bạn vui vẻ

  2. #2
    ước j zstar upload tut về XNA sớm ... 12 tháng thì tuyệt wa. mình đã đỡ phải vật vã

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    anh zstar ơi anh chỉ dùm em cách lấy tọa độ pixel của 1 spirit theo chuyển động của nó đc kô
    bình thường 1 spirit 1 nhân vật thướng có nhiều hình đi đứng ... skill
    nếu viết code lởm thì phải tách ảnh cho từng sự kiện còn code của mấy pro thì chỉ 1 ảnh duy nhất cho nhiều việc
    hưỡng dẫn cho em với

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hi you ^^

    bạn có thể tham khảo 2 tut này của mình

    tut 1: tạo chuyển động từ sprite
    http://forums.congdongcviet.com/showthread.php?t=31389
    tut 2: cuộn map
    http://forums.congdongcviet.com/showthread.php?t=38013

    thank for your spam

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •