NHẬP MÔN PHÁT TRIỂN GAME ĐỀ TÀI Game Mario

31 894 2
NHẬP MÔN PHÁT TRIỂN GAME ĐỀ TÀI  Game Mario

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o NHẬP MÔN PHÁT TRIỂN GAME ĐỀ TÀI: Game Mario Giảng viên hướng dẫn: TS Ngô Thanh Hùng Sinh viên thực hiện: Thành Phố Hồ Chí Minh 27/11/2011 Võ Quang Thiều 08520597 Nguyễn Trọng Sang 08520583 Nguyễn Hữu Tâm 08520589 Đỗ Trung Vinh 08520617 Ngô Văn Toàn 08520411 Game Mario TS Ngô Thanh Hùng Lời mở đầu Khi nói tới game, game online game offline bạn đọc dễ dàng nhận định phương tiện giải trí sau làm việc, học tập căng thẳng, liệu pháp xả stress hữu ích Cũng có loại game việc giải trí giúp người chơi cải thiện trí nhớ, tư duy, phản xạ nhạy bén hơn,… Trong đề tài tạo game Mario, game quen thuộc với nhiều người, game nhằm mục đích giải trí Đề tài nói lên cách để xây dựng game công nghệ sử dụng đề giúp tạo nên game thực thân thiện với người dùng Directx công nghệ sử dụng phổ biến phát triển game, hổ trợ tốt cho người lập trình Tp Hồ Chí Minh, ngày 27 tháng 11 năm 2011 Game Mario TS Ngô Thanh Hùng MỤC LỤC Game Mario Hùng TS Ngô Thanh A Game Mario I Giới Thiệu  Mario game lâu đời có số lượng người chơi lớn đặc biệt ngày thịnh hành Tuy nhiên Game Mario có nhiều phiên khác nhau, nhiều loại khác nhau, nội dung giống game Mario  Đồ án Game Mario phát triển tinh thần game Mario bản, thay đổi hình ảnh (giao diện đẹp hơn), thêm số vật thể game nhằm tạo cho game sinh động hơn, đặc biệt tạo map chơi mang tính chinh phục, thử thách cho người chơi  Người chơi điều khiển Mario để vượt qua game Mỗi có đích đến, Mario đến đích chuyển sang Trên đường Mario gặp nhiều quái vật Khi Mario chạm vào quái vật bị chết, bị nhỏ lại… Ngoài Mario bị chết rơi xuống vực thẳm  Mario giết chết quái vật cách nhảy lên đầu quái vật nhảy đụng vào phần gạch bên quái vật (khi Mario nhỏ) Giết chết quái vật người chơi cộng thêm điểm  Độ khó game tăng dần: quái vật nhiều hơn, chướng ngại vật khó vượt qua hơn, quái vật di chuyển nhanh hơn, vật phẩm cho Mario hơn…  Ban đầu người chơi tặng cho mạng sống Mario (hết mạng sống Game Over) Trong trình chơi mạng sống tăng người chơi ăn nấm người chơi đạt số điểm định II Chương Trình Giao diện chính:  Màn hình lúc khởi động game: • New Game: Chơi từ đầu • Load: tải game lưu trước để tiếp tục chơi • Options: tùy chọn tắt mở âm • Help: hiển thị thông tin giúp đỡ cách chơi • Quit: thoát khỏi trò chơi Nhóm Sinh Viên - UIT Trang 5/27 Game Mario Hùng TS Ngô Thanh  Màn hình Play Game:  Màn hình Pause Game: (nhấn ESC để tạm dừng game) • Resume: tiếp tục trò chơi • Load: tải lại game lưu trước • Save: lưu lại thời điểm game • Opntions: tùy chọn tắt mở âm • Close: quay hình Menu lúc vào game Nhóm Sinh Viên - UIT Trang 6/27 Game Mario Hùng TS Ngô Thanh  Màn hình Load Game: Có tối đa 10 thời điểm game lưu  Màn hình Save Game: Nhóm Sinh Viên - UIT Trang 7/27 Game Mario Hùng TS Ngô Thanh Được lưu tối đa 10 thời điểm game  Màn hình Options: • SoundTrack: tắt/ mở nhạc • Other Sounds: tắt mở âm di chuyển, va chạm, … • Mute All: tắt tất âm  Màn hình Help: Nhóm Sinh Viên - UIT Trang 8/27 Game Mario Hùng TS Ngô Thanh Đối tượng game: 2.1 Đối tượng không xét va chạm:  Bao gồm thành phần nhầm tạo nên background cho khung cảnh game  Các đối tượng như: lùm cây, lùm hoa, núi, mây… đối tượng không xét va chạm game 2.2    Đối tượng có xét va chạm: Các đối tượng phân thành nhiều loại: Nhóm khối gạch: nhóm phần tạo nên background cho game Nhóm enemy (quái): nhóm thành phần quái tiêu diệt Mario  Nhóm Bonus: items mà Mario ăn vào thay đổi trạng thái Một số thuộc tính đối tượng: 3.1 Mario:  Nhân vật game, người chơi điều khiển trực tiếp phím di chuyển tương ứng bàn phím (Left – qua trái, Right – qua phải, Up – nhảy lên, Down – ngồi xuống)  Mario chạy nhanh nhảy xa người chơi sử dụng phím “A” Khi nhấn Left Right + “A” Mario di chuyển tốc độ nhanh bình thường  Mario có trạng thái: • Ban đầu Mario nhỏ 48x60 • Ăn nấm đỏ: Mario lớn 47x90 • Mario sung: trạng thái lớn, Mario ăn hoa trang bị thêm súng, người chơi nhấn “S” để bắn tiêu diệt quái vật Nhóm Sinh Viên - UIT Trang 9/27 Game Mario Hùng • TS Ngô Thanh Mario bất tử: Mario ăn trở nên vòng 15s, thời gian quái chạm phải Mario chết Tuy nhiên Mario chết rơi xuống vực 3.2 Enemy:  Súng tự động: tự động bắn đạn để giết Mario • Súng tự bắn loại đạn giống đạn Mario trang bị súng, đạn bắn lần nhiều viên đặc biệt sát hại Mario, không tiêu diệt quái khác • Súng có mức máu định, có đạn Mario tiêu diệt  Rùa: Mario chết chạm ngang với rùa bị thu người lại bị Mario va chạm bên xuống • Lúc rùa bị thu người, bị Mario đá di chuyển giết quái khác va chạm với • Rùa bị thu người vòng 5s, sau thời gian hoạt động lại bình thường • Rùa chết trúng đạn Mario, bị rơi xuống vực Mario va chạm phía lên rùa di chuyển hàng gạch  Nấm thường: Mario Mario chạm vào chết, nấm chết bị trúng đạn  Nấm ẩn hiện: giống nấm thường  Quái di chuyển: Mario chết chạm phải quái chết Mario va chạm từ xuống từ lên quái di chuyển hàng gạch Quái chết trúng đạn Mario  Quái Mario: hình dạng giống Mario tính giống quái khác • Nếu Mario va chạm từ xuống quái trở thành quái nhỏ có hình dạng giống Mario nhỏ di chuyển tốc độ nhanh hơn, lúc bị va chạm từ xuống chết • Quái lúc lớn bị Mario va chạm từ lên lúc quái di chuyển hàng gạch trúng đạn Mario chết 3.3 Bonus:  Nấm đỏ : • Mario nhỏ ăn vào trở thành Mario lớn • Được cộng thêm 200 điểm  Nấm xanh  Cây hoa Nhóm Sinh Viên - UIT : Được tăng thêm mạng : Trang 10/27 Game Mario Hùng TS Ngô Thanh Cũng gần giống class ImageStore, khởi tạo đối tương kích thước vật thể game, nhằm mục đích dễ sử dụng dễ chỉnh sửa Screens: Bao gồm hình có game Đó là: 5.1 Screen:  Là class chính, bao gồm thành phần để tạo nên hình cho game  Định nghĩa thông số cho loại hình:  Class Screen có số biến cần thiết như: Screen *_OldScreen: dùng để lưu lại hình trước đó, bool _CloseScreen: dùng xác định xem hình bị đóng lại hay không, Screen_Type _NextScreen: xác định hình  Ngoài có số hàm override lại hình kế thừa như: • virtual void update(): cập nhật lại trạng thái hình, tùy thuộc vào hình cụ thể • virtual void Input_update(): cập nhật kiện bàn phím • virtual void Screen_Update(): cập nhật trạng thái đối tượng hình • virtual void Draw(): thể đối tượng hình 5.2 Menu: Class kế thừa từ class Screen: class Menu:public Screen, số biến hàm class:  Biến LPD3DXSPRITE SpriteHandle: trỏ chứa Sprite dùng để vẽ đối tượng, lấy từ class Init_game  Các biến Texture *_Menu, *_TSelect; *background: load ảnh lên để vẽ Và D3DXVECTOR3 _PosMS: biến để xác định vị trí *TSelect hình  Các hàm Update(), Input_update(), Screen_Update() Draw() override lại từ hàm Screen Ở hàm Input_Update() ta gán lại vị trí ảnh(*TSelect) nhấn bàn phím đồng thời xác định xem tùy chọn  Hàm Draw() ta thực vẽ đối tượng hình: Nhóm Sinh Viên - UIT Trang 17/27 Game Mario Hùng TS Ngô Thanh 5.3 Play: Đây hình game, nơi mà người dùng tương tác với trò chơi  Class kế thừa từ class Screen  Một phần quan trọng class chinh là: Cây tứ phân     QuadTree *_MapQuadTree: nơi quản lý toàn đối tượng game Biến D3DXVECTOR3 _PosScreen: giúp xác định tọa độ Mario game list _ListObjs: danh sách object lấy từ tứ phân xét phạm vi hiển thị hình Các đối tượng tạo game: Texture *PointTexture, *_TBlock, *_TScenery, *_Marks, **_Mario… Một số hàm game: • void update(): thực di chuyển tứ phân, kiểm tra trạng thái Mario, kiểm tra qua màn,… • void Input_update(): cập nhật trạng thái hình, trạng thái object,… • void Screen_Update():thực việc cập nhật lại tạo độ hình, danh sách object tứ phân vẽ, … • void Draw(): vẽ tất đối tượng list object, vẽ Mario, vẽ điểm, mạng người chơi, chơi tại, … 5.4 Pause: Màn hình hiển thị Menu cho phép quay trở lại game(Resume) Load/ Save game, tùy chọn âm thoát hình khởi động  Class kế thừa class Screen  Một số biến cần thiết: Texture *_Menu,*_TSelect: lưu hình ảnh menu ảnh select  Các hàm override từ hàm Screen tương tự hàm class Menu 5.5 LoadSave: Class dùng lưu lại thời điểm dang chơi tải lên gaem lưu  Các biến gần giống biến class Menu hay Pause  Một số biến cần thiết: XML *_Xml: class XML dùng đọc/ ghi liệu từ file char **_Info, * name: dùng tạo list file lưu/save để thể hình  Hàm Input_update(): thực kiểm tra phím thực việc load save file 5.6 Options: Nhóm Sinh Viên - UIT Trang 18/27 Game Mario Hùng TS Ngô Thanh Class giống class trước, thể việc chọn tùy chỉnh âm 5.7 NextMap: Class tạo hình chuyển đổi, hình tự chạy Mario chết qua Màn hình tự cập nhật hình sau 5s Class biến hàm tương tự class khác, khác việc sử dụng đối tượng 5.8 Help: Class thể di ảnh hướng dẫn người dùng cách chơi Mario: Mario có trạng thái khác mô tả game, trạng thái thể class riêng lẻ để dễ quản lý 6.1 Class Mario:  Các biến cần thiết: • float _Vx,_VxR,_Vy,_VyR,_Vmin,_Vtd: vận tốc di chuyển • float _g: gia tốc trọng trường • bool_LEFT, _RUN, _JUM, _SIT, _Stand, _MoveL, _MoveR, _JumF: xác định di chuyển • list *_ListCollison: danh sách va chạm • LPD3DXSPRITE _SpriteHandle: đối tượng Sprite dùng để vẽ • Texture** _Image: danh sách hình ảnh trạng thái Mario  Các hàm chính: • Sự kiện bàn phím:  Hàm xét đối tượng khác:  Các hàm override: Nhóm Sinh Viên - UIT Trang 19/27 Game Mario Hùng TS Ngô Thanh 6.2 Các trạng thái khác: Các trạng thái khác Mario kế thừa class Mario  Class MarioBig: thay đổi kích thước Mario so với Mario  Class MarioWhite: giống MarioBig, thêm kiện nhấn “S” bắn đạn  Class Mario AmuletSmall AmuletBig: trạng thái Mario xét va chạm với quái trường hợp – quái chết  Class MarioConvert: vẽ Mario chuyển đổi trạng thái  Class Mariodie: vẽ Mario chết Colission: Bao gồm class xậy dựng tạo nên đối tượng 7.1 Enemy:  Class Enemy dùng để tạo đối tượng quái, có khả tự chuyển động  Một số biến cần thiết class: Texture *_Goomba: lấy hình ảnh enemy để vẽ RECT RectResource: xác định khung ảnh cần thể ảnh load lên D3DXVECTOR3 pos: xác định vị trí enemy cần vẽ  Ngoài có số biến như: float _Vx: xác định vận tốc di chuyển cho enemy, float _Gravity: xác định gia tốc trọng trường rơi  Hàm void Animation() xác định khung ảnh vẽ  Hàm bool CheckMoveX(),bool CheckMoveY(): quản lý việc di chuyển đối tượng 7.2 Tortoise:  Class Tortoise dùng để tạo rùa game  Class có cấu trúc gần giống class Enemy, nhiên class Tortoise có điểm khác biệt: Có hình dạng rùa game lúc bình thường lúc thu người, cần Texture để lưu ảnh Đặc biệt Rùa có khả tiêu diệt quái khác nên có trường hợp xét riêng xử lý di chuyển va chạm - list *_ListEnemy: lưu đối tượng cần xét va chạm  Hàm void Animation(): xác định hình ảnh rùa cần vẽ  Hàm khác void CheckEnemyDie(): kiểm tra đối tượng khác va chạm với rùa trường hợp lúc bình thường lúc thu người di chuyển 7.3 EMario:  Class EMario tạo đối tượng quái giống Mario mà người chơi điều khiển  Class gần giống class Tortoise, thay thu người lại EMario trở thành Mario nhỏ  Các hàm tương tự Nhóm Sinh Viên - UIT Trang 20/27 Game Mario Hùng TS Ngô Thanh 7.4 Bonus:  Class Bonus tạo đối tượng gạch dấu hỏi, gạch thường tiền  Các đối tượng có loại khác nhau: • Nấm đỏ, nấm xanh, hoa, gạch dấu hỏi thể chung hình ảnh dấu hỏi • Gạch thường • Coin  Các hàm bản: 7.5 Mushroom:  Class Mushroom tạo loại đối tượng nấm ăn thịt, nấm ẩn súng  Các biến hàm xây dựng giống class trước  Có thêm đối tượng Blood thể máu súng – đối tượng đặc biệt – có súng có  Hàm void setBlood() hàm dùng để cập nhật hình ảnh cho Blood bị trúng đạn Mario máu giảm 7.6 Item:  Class Item class tạo đối tượng Bonus tự chuyển khác với class Bonus tạo đối tượng cố định  Class Item giống class tạo đối tượng tự di chuyển khác  Class tạo đối tượng nấm đỏ, nấm xanh, sao…  Các hàm tương tự class khác, nhiên có thêm hàm void Add() dùng để thêm đối tượng vào tứ phân đối tượng tạo Nhóm Sinh Viên - UIT Trang 21/27 Game Mario Hùng TS Ngô Thanh 7.7 Bullet:  Class Bullet class tạo đạn sử dụng cho súng Mario súng chống lại Mario  Class có Struct hổ trợ Struct B_Items: tạo phần tử đạn class Bullet tạo mảng B_items  Vì Bullet phục vị cho đối tượng khác Mario Súng nên có hàm void Draw() – Mario bắn viên đạn lần, Súng bắn viên đạn lần Effect: Tạo hiệu ứng game gạch vỡ va chạm với Mario, quái bị chết, hiển thị coin Mario va chạm ô gạch dấu hỏi thể thông tin hình  Class Brokenbrick: tạo hiệu ứng gạch vỡ, class có struct hổ trợ struct Brick: tạo viên gạch nhỏ, Brokenbrick danh sách nhiều Brick  Class EnemyDie: gồm danh sách chứa Enemy bị chết để thể  Class ShowCoin gần giống Brokenbrick, ShowCoin có struct hổ trợ struct Coin, ShowCoin danh sách Coin Nhóm Sinh Viên - UIT Trang 22/27 Game Mario Hùng TS Ngô Thanh  Class Text: class để hiển thị thông tin hình như: số điểm, tiền, map hiển thị số điểm có Mario giết quái ăn tiền Class có struct Score để tính điểm Game: Đây class Game_main, nơi điều hành toàn game  Game có số biến toàn cục sử dụng toàn chương trình:  Class bao gồm tất đối tượng dùng game Đối tượng khởi tạo Game_init – khởi tạo sổ cho game  Một số hàm game_main là: • Init() Nhóm Sinh Viên - UIT Trang 23/27 Game Mario Hùng TS Ngô Thanh • Vòng lặp vô hạn để điều khiển game: • Và hàm Update(): cập nhật tất đối tượng game thể hình Nhóm Sinh Viên - UIT Trang 24/27 Game Mario Hùng TS Ngô Thanh IV Ưu Nhược Điểm Ưu điểm:  Game đáp ứng yêu cầu cần thiết phải có  Giao diện tương đối thu hút người chơi  Game có có đối tượng súng, EMario…  Game có chơi có tính chinh phục thử thách người chơi Nhược điểm:  Game số lỗi nhỏ: Mario bị dính vào gạch (chỉ có ăn nấm lớn lên)  Chưa có khác biệt lớn game Mario khác  Hạn chế ý tưởng game B MapEditor I Giới Thiệu  Việc chơi game Mario tạo người chơi cảm giác khác nhau, tùy theo cảm nhận người mà game hay hay dở, khó hay dễ…  Việc tạo MapEditor phần quan trọng giúp cho người phát triển game dễ dàng thể ý tưởng mình, giúp cho Map game đáp ứng nhu cầu giải trí người dùng  Ngoài MapEditor giúp người chơi (có kỹ sử dụng) tạo Map khác nhau, tùy theo sở thích, tư người II Chương Trình Chương trình cup cấp giao diện giúp người dùng việc kéo thả items để tạo thành Map theo ý Giao diện chính: • Màn hình nơi chứa items, thể map: Nhóm Sinh Viên - UIT Trang 25/27 Game Mario Hùng • TS Ngô Thanh Hình 2.1.1: Màn hình Màn hình chứa Items game: Nhóm Sinh Viên - UIT Trang 26/27 Game Mario Hùng • TS Ngô Thanh Hình 2.1.2: Màn hình Items Các Button hổ trợ: Hình 2.1.3: Màn hình thao tác Thành phần:  Hình 2.1.1: nơi items kéo thả vào Màn hình có kích thước 6400x6400, thực tế phần hiển thị 800x600 Vì việc di chuyển tọa độ, vị trí khung hình thay đổi vị trí items  Hình 2.1.2: items có game, phần làm loại chính: • Các items không xét va chạm nhóm Scenery Các items thuộc nhóm đặt tự Map, tạo độ trùng nhau, Nhóm Sinh Viên - UIT Trang 27/27 Game Mario Hùng TS Ngô Thanh đặc biệt phía sau items thuộc nhóm khác, mục đích để tạo nên background cho map • Các Items có xét va chạm: items thuộc nhóm lại Trong lại chia loại khác nhau:  Nhóm Required: nhóm yêu cầu bắt buộc, cần thiết cho map cần phải có Trong Mario bắt buộc winItem cần thiết đế xét qua màn, Mario gặp item qua Và nhóm item tạo lần mà  Các nhóm lại tạo nhiều lần map, không trùng vị trí che lắp lẫn  Hình 2.1.3: gồm button, nhóm Button: Left, Right, Up Down dùng để di chuyển tọa độ gốc map Các button lại có chức tương ứng: Clearall – xóa toàn items, Save “…” dùng để lưu map Load – dùng tải lên map để chỉnh sửa Một số thuộc tính:  Các Items: Sử dụng cách click chuột trái vào item muốn dùng, sau di chuyển đến vị trí cần đặt map click chuột trái để tạo item tương ứng Click vào Pointer để quay trỏ chuột Việc cập nhật lại tọa độ items map, việc click chuột trái vào item cần cập nhật di chuyển đến vị trí mới, click chuột trái lần để hoàn thành việc cập nhật Để xóa item việc chuột phải vào item chọn delete xong  Các Enemy: • Súng tự động: • Rùa: Mario chết chạm ngang với rùa bị thu người lại bị Mario va chạm bên xuống • Nấm thường: đạn Mario • Nấm ẩn hiện: • Quái di chuyển: Mario chết chạm phải quái chết Mario va chạm theo chiều dọc tự động bắn đạn để giết Mario Mario chạm vào chết, nấm chết bị trúng giống nấm thường • Quái Mario: hình dạng giống Mario giống quái khác, có điều có mạng, biến thành nhỏ Mario va chạm từ xuống chết va chạm giống lần  Điểm thưởng: • Nấm đỏ: • Nấm xanh: • Cây hoa: Biến thành Mario súng lớn thành Mario lớn nhỏ Nhóm Sinh Viên - UIT Biến thành Mario lớn Được tăng thêm mạng Trang 28/27 Game Mario Hùng TS Ngô Thanh • Sao: Mario 15s, quái chết chạm phải mario lúc • Cộng tiền: cộng thêm 10 tiền tương ứng  Item đặc biệt: Item xét va chạm với Enemy mà không xét va chạm với Mario, giúp giới hạn phạm vi di chuyển Enemy Đặc biệt không hiển thị hình game chơi  Nhóm Required: Mario bắt buộc phải chọn map, chọn mặc định không chọn Mario Item win cần thiết để xét qua màn, Mario gặp item chuyển sang Và nhóm item tạo lần map  Button di chuyển: hình có cự li 400px, tương ứng phím di chuyển bàn phím có cự li 50px mà III Cài Đặt Sơ lược cấu trúc MapEditor: Chương trình có class class Object (gồm thuộc tính item game) Class Object: Mỗi Item quy định Id Type tương ứng với Id Type Object GameMario Cũng kích thước tọa độ dùng để thể Item game Class Main(Form1):  Các hàm biến chính: • Dictionary list_pic: sử dụng Dictionary lưu • • • pictureBox, item thêm vào map, để thuận tiện cho việc truy xuất liệu List list_key: sử dụng danh sách danh sách chứa từ khóa list_pic, dùng việc di chuyển item dễ dàng nhanh chống Sẽ có list tạo tương ứng với danh sách từ khóa riêng biệt sử dụng timer khác nhau, sử lý song song giúp chương trình chạy nhanh int[,] Matrix; mảng chiều khởi tạo [128,128] tương ứng phần tử ô 50x50 map Dùng để xét xem vị trí set map Giá trị chưa set ngược lại Các biến khác như: int i – tạo name cho picture, PictureBox temp; - lưu picturebox sử dụng… Nhóm Sinh Viên - UIT Trang 29/27 Game Mario Hùng TS Ngô Thanh  Các hàm xử lý chính: • void pic_mouse_down(object sender, MouseEventArgs e) : • • • • • kiện dùng chung cho tất picturebox item Một pic tạo gán vào biến temp để thực việc di chuyển tạo item map void mouse_down(object sender, MouseEventArgs e): picturebox tạo phát sinh kiện này, giúp quản lý việc tạo 1pic map, update hay delete pic map void addpic(PictureBox _temp): hàm hổ trợ cho việc tạo pic kiện mouse_down(), hàm phụ trách tạo mới, add vào list_pic list_key để quản lý void WriteXML(String path): hàm dùng để lưu liệu thành file *.xml map hoàn chỉnh dùng game mario Hàm thực ghi tất item tạo lưu list_pic void ReadXML(String _path): thực việc load liệu từ file *.xml tạo trước lên để chỉnh sửa Các hàm hổ trợ khác như: void remove_pic() – xóa picturebox map, void remove_temp() - xóa biến temp dùng, void removeall() – xóa tất items map, … IV Ưu Nhược Điểm Ưu điểm:  Chương trình hổ trợ đầy đủ tính giúp người dùng tạo Map game cho riêng  Giao diện chương trình đơn giản dễ sử dụng thao tác không phức tạp  Chương trình bắt lỗi có thông báo cần thiết để người dùng kiểm soát việc Nhược điểm:  Việc xử lý code chưa đươc tối ưu  Xử lý di chuyển picturebox dùng thay đổi tọa độ gốc map chưa thật tốt, số lượng items lớn (> 1000) việc di chuyển tạo cảm giác bị chậm giật, tọa độ cập nhật xác  Các thao tác chưa thuận tiện C Kết Luận Game_Mario:  Về mặt kỹ thuật game xây dựng theo hướng đối tượng, dễ kiểm soát phát triển sau  Game đạt yêu cầu cở game giải trí MapEditor:  Chương trình có thiết kế đơn giản, dễ sử dụng  Chương trình đáp ứng nhu cầu tạo Map cho game Mario Hướng phát triển:  Phát triển game theo hướng mặt ý tưởng: tạo nhiều loại quái hơn, đa dạng chức độ khó  Xây dựng phần MapEdit chung chương trình game để người dùng thực thể ý tưởng môt cách nhanh chống Tài liệu tham khảo: Chương trình thảm khảo tài liệu từ:  Sách Beginning DirectX9 – TransTeam diễn đàn Gamedev Nhóm Sinh Viên - UIT Trang 30/27 Game Mario Hùng     TS Ngô Thanh Thiết kế game 2D – sưu tầm Project SupperMario – Internet Project Mario – GameClub UIT Tài liệu internet khác Nhóm Sinh Viên - UIT Trang 31/27 [...]... tác chưa được thuận tiện lắm C Kết Luận 1 Game_ Mario:  Về mặt kỹ thuật game được xây dựng theo hướng đối tượng, dễ kiểm soát và phát triển sau này  Game đạt được các yêu cầu cở bản của một game giải trí 2 MapEditor:  Chương trình có thiết kế đơn giản, dễ sử dụng  Chương trình đáp ứng được nhu cầu tạo ra một Map cho game Mario 3 Hướng phát triển:  Phát triển game theo hướng về mặt ý tưởng: tạo ra... thái Mario  Các hàm chính: • Sự kiện bàn phím:  Hàm xét các đối tượng khác:  Các hàm được override: Nhóm Sinh Viên - UIT Trang 19/27 Game Mario Hùng TS Ngô Thanh 6.2 Các trạng thái khác: Các trạng thái khác của Mario sẽ kế thừa class Mario  Class MarioBig: thay đổi kích thước của Mario so với Mario cơ bản  Class MarioWhite: giống MarioBig, nhưng được thêm sự kiện khi nhấn “S” bắn ra đạn  Class Mario. .. chung trong chương trình game để người dùng có thể thực hiện thể hiện ý tưởng của mình môt cách nhanh chống 4 Tài liệu tham khảo: Chương trình thảm khảo tài liệu từ:  Sách Beginning DirectX9 – TransTeam diễn đàn Gamedev Nhóm Sinh Viên - UIT Trang 30/27 Game Mario Hùng     TS Ngô Thanh Thiết kế game 2D căn bản – sưu tầm Project SupperMario – Internet Project Mario – GameClub UIT Tài liệu internet khác... được dùng trong game Đối tượng đầu tiên được khởi tạo là Game_ init – khởi tạo của sổ chính cho game  Một số hàm chính trong game_ main đó là: • Init() Nhóm Sinh Viên - UIT Trang 23/27 Game Mario Hùng TS Ngô Thanh • Vòng lặp vô hạn để điều khiển game: • Và một hàm chính nữa là Update(): cập nhật tất cả các đối tượng trong game và thể hiện ra màn hình Nhóm Sinh Viên - UIT Trang 24/27 Game Mario Hùng TS... mạng, biến thành nhỏ khi Mario va chạm từ trên xuống và chết nếu va chạm giống vậy lần 2  Điểm thưởng: • Nấm đỏ: • Nấm xanh: • Cây hoa: Biến thành Mario súng nếu đang lớn hoặc thành Mario lớn khi đang nhỏ Nhóm Sinh Viên - UIT Biến thành Mario lớn Được tăng thêm 1 mạng Trang 28/27 Game Mario Hùng TS Ngô Thanh • Sao: Mario sẽ bất tử trong 15s, mọi quái đều chết nếu chạm phải mario lúc này • Cộng tiền:... Ưu điểm:  Game đáp ứng được các yêu cầu cần thiết phải có  Giao diện tương đối thu hút người chơi  Game có có đối tượng mới như súng, EMario…  Game có các màn chơi có tính chinh phục và thử thách người chơi 2 Nhược điểm:  Game vẫn còn một số lỗi nhỏ: như Mario bị dính vào gạch (chỉ có khi ăn nấm lớn lên)  Chưa có được sự khác biệt lớn giữa các game Mario khác  Hạn chế ý tưởng trong game B MapEditor... tự động: • Rùa: Mario sẽ chết khi chạm ngang với rùa và bị thu người lại khi bị Mario va chạm bên trên xuống • Nấm thường: đạn của Mario • Nấm ẩn hiện: • Quái di chuyển: Mario cũng sẽ chết nếu chạm phải và quái sẽ chết khi Mario va chạm theo chiều dọc tự động bắn đạn để giết Mario Mario chạm vào sẽ chết, nấm chết khi bị trúng cũng giống như nấm thường • Quái Mario: hình dạng giống Mario và giống các... sẽ là danh sách các Coin Nhóm Sinh Viên - UIT Trang 22/27 Game Mario Hùng TS Ngô Thanh  Class Text: là class để hiển thị thông tin trên màn hình như: số điểm, tiền, map hiện tại và hiển thị số điểm có được khi Mario giết quái hoặc ăn tiền Class cũng có struct Score để tính điểm 9 Game: Đây là class Game_ main, nơi sẽ điều hành toàn bộ game  Game có một số biến toàn cục được sử dụng trong toàn bộ chương... khác  Hạn chế ý tưởng trong game B MapEditor I Giới Thiệu  Việc chơi game Mario sẽ tạo ra trong mỗi người chơi một cảm giác khác nhau, tùy theo cảm nhận của mỗi người mà game hay hay dở, khó hay dễ…  Việc tạo MapEditor phần quan trọng là giúp cho người phát triển game có thể dễ dàng thể hiện ý tưởng của mình, giúp cho các Map trong game đáp ứng được nhu cầu giải trí của người dùng  Ngoài ra MapEditor... với rùa trong 2 trường hợp lúc bình thường và lúc thu người di chuyển 7.3 EMario:  Class EMario tạo ra đối tượng quái giống như Mario mà người chơi điều khiển  Class này cũng gần giống như class Tortoise, ở đây thay vì thu người lại thì EMario sẽ trở thành Mario nhỏ  Các hàm cũng tương tự Nhóm Sinh Viên - UIT Trang 20/27 Game Mario Hùng TS Ngô Thanh 7.4 Bonus:  Class Bonus tạo ra các đối tượng như ... Đây class Game_ main, nơi điều hành toàn game  Game có số biến toàn cục sử dụng toàn chương trình:  Class bao gồm tất đối tượng dùng game Đối tượng khởi tạo Game_ init – khởi tạo sổ cho game  Một... lúc vào game Nhóm Sinh Viên - UIT Trang 6/27 Game Mario Hùng TS Ngô Thanh  Màn hình Load Game: Có tối đa 10 thời điểm game lưu  Màn hình Save Game: Nhóm Sinh Viên - UIT Trang 7/27 Game Mario... 5/27 Game Mario Hùng TS Ngô Thanh  Màn hình Play Game:  Màn hình Pause Game: (nhấn ESC để tạm dừng game) • Resume: tiếp tục trò chơi • Load: tải lại game lưu trước • Save: lưu lại thời điểm game

Ngày đăng: 06/01/2016, 09:19

Tài liệu cùng người dùng

Tài liệu liên quan