1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế game flash với action script 3

13 1,5K 12

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 205 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MULTIMEDIA Đề tài: THIẾT KẾ GAME FLASH VỚI ACTION SCRIPT 3 Giảng viên hướng dẫn : ThS. Lương Ngọc Quang Nhóm sinh viên thực hiện : Nhóm STS – 52PM2 Gồm các thành viên : Nông Xuân Sơn , MSSV : 136952 Lương Khắc Tùng , MSSV : 633352 Nguyễn Huy Sơn , MSSV : 387352 Ngày Tháng Năm - 1 - Mục Lục I. Giới thiệu chung 3 II. Thiết kế game 3 A. Các đối tượng trong game .3 1. Char 3 2. Enemy 4 3. Ground 4 4. Gun 5 5. Pick Up 5 6. Spike 5 7. WallLeft 6 8. WallRight 6 B. Lập trình action script tương tác giữa các đối tượng 7 1. Lập trình cho đối tượng char ( nhân vật chính ) 7 2. Lập trình cho đối tượng Enemy ( kẻ địch ) 10 3. Lập trình cho đối tượng Gun ( súng ) .11 4. Lập trình cho đối tượng Pick Up ( điểm ) 11 5. Lập trình cho đối tượng Spike ( chướng ngại vật ) 12 6. Lập trình cho sự kiện vào game .12 III. Tài liệu tham khảo 12 IV. Kết luận 13 - 2 - I . Giới thiệu chung Ngày nay, công nghệ thông tin đã thâm nhập vào hầu hết các lĩnh vực học tập và giải trí ngày một đa dạng của con người. Khi nói đến giải trí, công nghệ thông tin đã và đang từng bước thỏa mãn các nhu cầu phức tạp nhất của con người, như xem phim, nghe nhạc chất lượng cao, đọc tin tức trực tuyến, đi kèm với nó không thể không kể đến game. Game ngày càng phát triển mạnh với những yêu cầu khắt khe của những người chơi khó tính nhất. Tuy nhiên thiết kế game không đơn giản và dễ dàng với bất cứ người nào, đó là một công việc vô cùng vất vả và đầy tính trí tuệ. Một game hay thường là sự kết hợp của một nhóm người lập trình giỏi kèm theo sự lao động chăm chỉ, nghiêm túc. Với lĩnh vực Flash vô cùng mới mẻ và đầy tính thách thức, nhóm STS chúng em đã nghiên cứu, ứng dụng và thiết kế ra một game platform flash đơn giản dựa trên ngôn ngữ lập trình Action Script 3. Tuy nhiên, với kiến thức còn hạn chế và kinh nghiệm còn thiếu, nhóm STS chúng em làm được game này dựa trên sự tham khảo nhiều tài liệu trên mạng. Công cụ làm game là Adobe Flash CS4 Ngôn ngữ lập trình Action Script 3  Hướng dẫn cách chơi : • Sử dụng các phím mũi tên để di chuyển nhân vật. • Dùng phím space để bắn súng có được trong quá trình chơi. • Dùng phím Ctrl để tấn công tiêu diệt kẻ địch trong phạm vi gần. • Khi chạm vào bẫy hoặc kẻ địch sẽ bị mất máu dần hoặc chết.  Hạn chế của chương trình: • Các chi tiết thiết kế còn thô sơ. • Khả năng tương tác giữa các đối tượng kém. II .Thiết kế game A. Các đối tượng trong game : 1. Char : * Mô tả : - Đây là nhân vật chính trong game do người chơi điều khiển. - Có thể di chuyển 4 hướng : lên, xuống, trái, phải theo các phím mũi tên. * Thiết kế : - 3 - - Sử dụng công cụ vẽ hình tròn có kích thước 36*36 px. - Chọn màu cho đối tượng char là #CCCCCC. - Chuyển thành movie clip. 2. Enemy: * Mô tả: - Đây là đối tượng kẻ địch, có khả năng di chuyển từ trái sang phải và ngược lại. - Khi nhân vật chạm vào kẻ địch này thì sẽ bị chết, mức máu trở về 0. - Có khả năng bị tiêu diệt khi bị nhân vật tấn công * Thiết kế: - Sử dụng nguồn hình ảnh trên mạng. - Chuyển thành ảnh vecto rồi chuyển thành movie clip 3. Ground: * Mô tả: - Đây là đối tượng nền đất, dùng để làm chỗ đứng cho nhân vật. - Là những khối hình chữ nhật to nhỏ khác nhau. * Thiết kế: - Sử dụng công cụ vẽ hình vuông. - 4 - - Hình chữ nhật ở dưới tô màu là #A7CCE2, hình chữ nhật ở trên tô màu là #006699. - Được chuyển thành movie clip. 4. Gun : * Mô tả : - Được nhân vật sử dụng để bắn đạn tiêu diệt kẻ địch. - Được để trong bản đồ, nhân vật phải ăn mới có được. * Thiết kế : - Sử dụng nguồn hình ảnh trên mạng. - Chuyển thành ảnh vecto rồi chuyển thành movie clip. 5. Pick Up: * Mô tả : - Là mục tiêu nhân vật cần lấy được. - Mỗi khi lấy được 1 cái sẽ tự động tăng lên 1 điểm. - Có tổng cộng 18 cái trong game. * Thiết kế : - Sử dụng nguồn hình ảnh trên mạng. - Chuyển thành ảnh vecto rồi chuyển thành movie clip. 6. Spike: * Mô tả : - Là chướng ngài vật cản trở nhân vật - Khi nhân vật chạm vào sẽ bị giảm mức máu 5 đơn vị và quay về vị trí cũ. * Thiết kế : - 5 - - Sử dụng nguồn hình ảnh trên mạng. - Chuyển thành ảnh vecto rồi chuyển thành movie clip. 7. WallLeft : * Mô tả: - Là đối tượng cản không cho nhân vật di chuyển về bên trái. - Được kết hợp với nền Ground để hạn chế sự di chuyển của nhân vật. * Thiết kế : - Sử dụng công cụ hình vuông để vẽ. - Chuyển thành movie clip. 8. WallRight : * Mô tả: - Là đối tượng cản không cho nhân vật di chuyển về bên phải. - Được kết hợp với nền Ground để hạn chế sự di chuyển của nhân vật. * Thiết kế : - Sử dụng công cụ hình vuông để vẽ. - 6 - - Chuyển thành movie clip. B. Lập trình action script tương tác giữa các đối tượng : 1. Lập trình cho đối tượng char ( nhân vật chính ): * Khi clip được load : onClipEvent (load) { //Nhân vật không nhảy được jumping = false; // Tốc độ của nhân vật là 0 speed = 0; // Cho máu của nhân vật (health) tại vị trí X healthX = _root.health._x; // Cho điểm của nhân vật (score) tại vị trí X scoreX = _root.score._x; //Gán tọa độ x vào biến Xpos Xpos = this._x; // Gán tọa độ y vào biến Ypos Ypos = this._y; //Độ di chuyển tối đa của nhân vật là 15 maxmove = 15; // Khoảng cách viên đạn đi xa được cho tới khi bị xóa _root.maxshoottime = 100; } * Trong sự kiện vào Frame //Gán giá trị cho tọa độ x _x = Xpos-_root._x; _root.score._x = scoreX-_root._x; _root.health._x = healthX-_root._x; if (!_root.ground.hitTest(this._x, this._y, true) && !jumping) { this._y += 6; } //xét thời gian và tốc độ bắn của đạn if (!_root.shooting) { _root.timer = 0; _root.mvsp = _xscale/20; } //Nếu nhân vật chết thì chuyển sang và dừng ở frame “dead” nếu không giảm tốc độ đi 0.85 lần if (_root.dead) { this.gotoAndStop("dead"); } - 7 - else { speed *= .85; //Di chuyển thanh trạng thái máu và điểm theo nhân vật if (dir == "right" && !_root.leftblock.hitTest(this._x+20, this._y, true)) { _root.health._x += speed; _root.score._x += speed; this._x += speed; _root._x -= speed; } if (speed>0) { dir = "right"; } else if (speed<0) { dir = "left"; } if (dir == "left" && !_root.rightblock.hitTest(this._x-20, this._y, true)) { _root.health._x += speed; _root.score._x += speed; this._x += speed; _root._x -= speed; } //Lập trình cho sự kiện bấm phím mũi tên sang trái if (Key.isDown(Key.LEFT)) { if (speed>-maxmove) { speed--; } this.gotoAndStop("run"); this._xscale = -100; } // Lập trình cho sự kiện bấm phím mũi tên sang phải else if (Key.isDown(Key.RIGHT)) { if (speed<maxmove) { speed++; } this._xscale = 100; this.gotoAndStop("run"); // Lập trình cho sự kiện bấm phím Ctrl để nhân vật tấn công } else if (Key.isDown(Key.CONTROL)) { this.gotoAndStop("attack"); attacking = true; speed = 0; // Lập trình cho sự kiện bấm phím Space để bắn đạn nếu có súng } else if (Key.isDown(Key.SPACE)) { - 8 - if (_root.gotgun == true && !_root.shooting) { _root.attachMovie("bullet", "bulleter", 1, {_x:_root.char._x, _y:_root.char._y-25}); _root.shooting = true; with (_root.bulleter) { onEnterFrame = function () { if (_root.timer>_root.maxshoottime) { _root.shooting = false; unloadMovie(this); } _root.timer++; _x += _root.mvsp; }; }; } attacking = true; speed = 0; this.gotoAndStop("shoot"); } } else if (speed<1 && speed>-1 && !attacking) { speed = 0; this.gotoAndStop("idle"); } // Lập trình cho sự kiện bấm phím mũi tên lên trên để nhảy if (Key.isDown(Key.UP) && !jumping) { jumping = true; } if (jumping) { this.gotoAndStop("jump"); this._y -= jump; jump -= .5; if (jump<0) { falling = true; } if (jump<-15) { jump = -15; } } if (_root.ground.hitTest(this._x, this._y, true) && falling) { jump = 12; jumping = false; falling = false; } } } - 9 - * Trong sự kiện bấm phím lên trên // Nếu bấm phím Ctrl thì vẫn không tấn công được kẻ địch onClipEvent (keyUp) { if (Key.getCode() == Key.CONTROL) { attacking = false; } } 2. Lập trình cho đối tượng Enemy ( kẻ địch ): * Khi clip được load: onClipEvent (load) { //Tốc độ di chuyển là 2 enemyspeed = 2; //Gán bước di chuyển sang phải, trái là 0 enemystepsright = 0; enemystepsleft = 0; //Vị trí ban đầu là bên trái enemydir = "left"; } * Trong sự kiện vào Frame: onClipEvent (enterFrame) { //Nếu bị nhân vật tấn công bằng phím Ctrl thì dừng lại và bị chết if (this.hitTest(_root.char.attackpoint)) { enemyspeed = 0; enemystepsright = 0; enemystepsleft = 0; dead = true; this.gotoAndStop("dead"); } //Tương tự nếu bị đạn bắn trúng if (this.hitTest(_root.bulleter)) { enemyspeed = 0; enemystepsright = 0; enemystepsleft = 0; dead = true; this.gotoAndStop("dead"); } //Nếu nhân vật chạm vào thì sẽ bị chết if (this.hitTest(_root.char) && !dead) { _root.char.jumping = false; _root.dead = true; } - 10 - . CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MULTIMEDIA Đề tài: THIẾT KẾ GAME FLASH VỚI ACTION SCRIPT 3 Giảng viên hướng dẫn : ThS. Lương Ngọc Quang Nhóm sinh. http://zensoft.vn 5. Flash MX ActionScript for Fun and Games, http://garyrosenzweig.com - 12 - IV. Kết luận : Do hiểu biết về lĩnh vực Flash và Action Script còn

Ngày đăng: 25/12/2013, 12:51

TỪ KHÓA LIÊN QUAN

w