Tải bản đầy đủ (.doc) (28 trang)

Tìm hiểu về ngôn ngữ actionscript và cơ bản về lập trình game trên cs5

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (693.07 KB, 28 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN
Báo cáo
Thực tập chuyên ngành cuối khóa
ĐỀ TÀI: Tìm hiểu về ngôn ngữ Actionscript
và cơ bản về lập trình game trên CS5
Huế, 15/3/2012
1
Mục Lục
A .
I.
Tìm hiểu về CS5 3
Các khái niệm cơ bản trong Adobe Flash CS5. 3
1.
2.
3.
4.
5.
6.
7.
II.
1.
2.
3.
4.
III.
1.
2.
3.
4.


Layer 3
Frame 3
Scene. 4
Movie 4
Biểu tượng Graphic 4
Biểu tượng Movie Clip 5
Biểu tượng Button 7
Tìm hiểu về ngôn ngữ Actionscript 3.0 7
Vùng soạn thảo ActionScript 8
Lập trình cơ bản với Actionscript 8
Lập trình hướng đối tượng trong AS3 11
Sự kiện trong AS3. 12
Cơ bản về lập trình game trong Actionscript. 13
Ưu nhược điểm của lập trình game bằng Actionscript 13
Sơ lược về thiết kế Game 14
Các đối tượng, phương thức trong thiết kế Game. 15
The Display list. 16
B.
1.
2.
3.
Demo 18
Ý tưởng và luật chơi. 18
Các đối tượng trong game. 19
Các cảnh chính trong game. 23
2
A. Tìm hiểu về CS5
I. Các khái niệm cơ bản trong Adobe Flash CS5.
1. Layer
Là các lớp được dung trong việc sáng tác, mỗi một khung hình có thể có

nhiều layer khác nhau, mỗi đối tượng thường được xây dựng trên mỗi layer
Hình 1. Tạo mới layer
-
-
Các biểu tượng
xóa layer.
Các biểu tượng
: lần lượt là tạo mới layer, tạo mới thư mục,
: lần lượt là ẩn hoặc hiện layer đã chọn, khóa
không cho phép chỉnh sửa đối tượng trên layer, cho phép đối tượng trên
layer chỉ hiển thị đường viền với màu nền hay chỉ là đường viên
2. Frame
Là khung hình dùng trong kỹ thuật chuyển động, vật thể chuyển động được
là nhờ vào sự thay thế khác khung hình, mắt người chỉ có thể lưu được
không quá 24 hình ảnh trên 1 giây, vì vậy khi ta di chuyển nhanh các frame
thì chúng ta không thể nhận thấy được sự thay đổi mà chỉ có cảm giác như
hình ảnh đang chuyển động.
3
3. Scene.
Là các cảnh quay trong Flash, mỗi cảnh quay là tập hợp các khung hình lần
lượt thay thế nhau tạo thành các chuyển động
Hình : tạo Scene mới
-
Các biểu tượng lần lượt là: tạo một Scene mới, tạo mới Scene
bằng cách copy Scene đang chọn.
-
-
Nhờ các Scene này mà chúng ta có thể tạo một thước phim dài mà
không phải quản lý các lớp một cách quá phức tạp khi số lượng đối
tượng trên cảnh quay đó quá nhiều.

Khi số lượng cảnh quay lớn, tập hợp các cảnh quay đó có thể tạo thành
một đoạn phim.
4. Movie
-
một Movie là tập hợp các cảnh quay Scene, biểu tượng quản lý các
cảnh quay trong movie
5. Biểu tượng Graphic
-
Là một hình ảnh tĩnh, nó có thể được sử dụng lại để tạo ra chuyển động.
4
Hình : Convert một đối tượng sang Graphic
-
-
-
-
-
Name: tên của graphic cần tạo.
Type: loại biểu tượng cần chuyển.
Các thuộc tính của biểu tượng.
Position and size: chúng ta có thể thay đổi tọa độ của đối tượng ở stage,
kích cỡ của đối tượng.
Swap: thay đổi biểu tượng đã chọn của đối tượng.
Color Effect: tùy chọn này cho phép ta hiệu chỉnh thuộc tính Brightness,
Tint, Advanced, Alpha của đối tượng.
6. Biểu tượng Movie Clip
-
-
Là một mẫu hoạt hình của flash có thể được tái sử dụng, khác với graphic,
MovieClip có riêng một TimeLine với vô số Frame của mình. Một
MovieClip có thể bao gồm một hoặc nhiều biểu tượng Graphic hoặc thậm

chí là MovieClip. Cũng tương tự như Button, bạn có thể cài đặt một tên
hiển thị cho nó để điều khiển nó bằng Actionscript.
Để tạo một biểu tượng MovieClip ra chọn đối tượng cần Swap, nhấn F8
5
Hình : Tạo một biểu tượng MovieClip
Hình: Thuộc tính của MovieClip
-
Instance name: tên hiển thị của biểu tượng, dùng đề làm việc với
ActionScript.
6
-
-
-
Instance of: thay đổi biểu tượng cho đối tượng hiển thị.
Position and size: thay đổi kích thước và vị trí của đối tượng
Color effect: chọn hiệu ứng màu sắc cho đối tượng, bao gồm: Brightness,
Tint, Advanced và Alpha.
7. Biểu tượng Button
-
-
Biểu tượng Button dùng để bổ sung một tương tác với movie, đáp trả các sự
kiện kích thuộc, ấn phím, kéo các thanh kéo và các hành động khác, một
biểu tượng button sẽ có bốn Frame tương tác: Up, Down, Over, Hit.
Thao tác tạo một button tương tự như tạo một MovieClip, các thuộc tính
của Button cũng tương tự như MovieClip.
Hình : Tạo một biểu tượng Button
II.
Tìm hiểu về ngôn ngữ Actionscript 3.0
• Actionscript được giới thiệu năm 1996 cùng với sự phát hành của Flash.
• Flash 5 được phát hành năm 2000 với sự ra đời của Actionscript 1.0.

• Flash MX2004 hay Flash 7 cung cấp phiên bản Actionscript 2.0.
• Actionscript 3.0 được giới thiệu năm 2006 cùng với sự phát hành của Flex
2, Flex cho phép các nhà phát triển xây dựng các ứng dụng đòi hỏi phải có
flash player. Tuy nhiên, Flash cung cấp một giao diện trực quan hơn cho
các ứng dụng phát triển và thích hợp cho phát triển game.
7
1. Vùng soạn thảo ActionScript
• Bộ thao tác phía trên vùng soạn thảo Actionscript
• Bổ sung thêm các thành phần vào Actionscript
• Tìm kiếm và thay thế.
• Chèn target vào trong vùng soạn thảo Actionscript.
• Kiểm tra lỗi cú pháp.
• định dạng mã nguồn tự động.
• xem các chỉ dẫn về mã nguồn.
• Tạo các điểm thoát trong debug chương trình
• 3 biểu tượng tiếp theo: Đóng mở các khối mã lệnh chương trình
• Hỗ trợ khi viết script
2. Lập trình cơ bản với Actionscript.
2.1 Ưu và Nhược điểm của Actionscript.
a. Ưu điểm của Actionscript
• Flash player được cài đặt trên 97% máy tính có kết nối Internet.
• Dễ tiếp cận và thực hiện nó.
• Được xây dựng giao thức xử lý sự cố trong sản xuất sản phẩm flash
• Debug nhanh, play and upload dễ dàng.
b. Nhược điểm của Actionscript
• Có nhiều vấn đề mới nên việc học Actionscript lúc đầu rất khó khăn.
• Screen- readers cho người xem không thể bao quát hết tất cả các
khía cạnh của flash.
• Không đủ mạnh để chạy các chương trình- độ phức tạp cao hơn.
2.2 Các kiểu dữ liệu thông dụng trong AS3.

c. Kiểu số nguyên
8
Có 2 dạng số nguyên được hổ trợ trong AS là kiểu số nguyên có dấu
int và số nguyên có dâu uint. Cả 2 loại số nguyên này điều chiếm
4byte, nghĩa là vùng giá trị của int là -231 đến 231-1 và giá trị của uint
là 0…231-1.
Note: trong kiểu dữ liệu, thì chỉ có kiểu số nguyên có chữ cái đầu
tiên viết thường.
d. Kiểu số thực
Số thực trong AS chiếm 32bit, từ khóa khai báo là Number.
Note: Number viết hoa chữ cái đầu tiên.
e. Kiểu Boolean.
Kiểu Boolean trong AS chỉ nhận 2 giá trị là true and false.
Note: chữ Boolean viết hoa chữ cái đầu tiên.
f. Kiểu xâu String.
Trong kiểu xâu String, thứ tự được đánh từ 0 đến n-1( n là độ dài của
xâu)
Note: chữ String viết hoa chữ cái đầu tiên.
g. Kiểu mảng Array.
Trong kiểu mảng Array, thứ tự được đánh từ 0 đến n-1( n là độ dài
của xâu)
Note: chữ String viết hoa chữ cái đầu tiên.
h. Kiểu đối tượng Object
Tương tự như trong ngôn ngữ C, nhưng nó mềm dẻo hơn rất nhiều.
2.3 Biến và Hằng
a. Biến
• Biến trong Actionscript tương tự như trong ngôn ngữ lập trình C,
nhưng chỉ khác trong cách khai báo biến.
• Cách khai báo biến trong Actionscript 3.0
Var Tên_Biến:Kiểu_dữ_liệu=[giá trị khởi tạo ];

Vd:
Var st:String = “Hello Word”;
Var i:Number = 10;
b. Hằng
• Hằng có giá trị không thay đổi.
• Cách khai báo Hằng tương tự như khai báo Biến chỉ thay đổi từ
khóa var thành const.
const Tên_Hằng:Kiểu_dữ_liệu= giá_trị_khởi_tạo ;
Vd:
9
const st:String = “Hello Word”;
const i:Number = 10;
c. Note: khi khai báo biến giá trị khởi tạo có thể có hoặc không, nhưng
trong khai báo hằng thì giá trị khởi tạo là thành phần bắt buộc phải
có.
2.4 Toán tử và biểu thức
Tương tự như trong c.
2.5 Các cấu trúc điều khiển trong AS3.
 Trong AS3 câu trúc If(), If() Else(), While(), Do While(), For()
tương tự như trong C.
a. Câu lệnh lặp For In
• Cú pháp
For(var index in Array)
{
Lệnh;
}
• Chức năng: Index là chỉ số mảng được khai báo trực tiếp trong
vòng lặp, khi thực hiện vòng lặp index sẽ tăng cho tới
Array.length -1, mỗi lần như vậy index sẽ tăng lên 1 và thực hiện
Lệnh trong vòng lặp.

b. Câu lệnh For Each in
• Cú pháp
For each(var item in Array)
{
Lệnh;
}
• Chức năng: giống như câu lệnh lặp For in nhưng ở đây index
được thay bằng item, nó là phần tử của mảng chứ ko phải là chỉ
số của mảng như trong For in.
2.6 Hàm trong AS3.
a. Khai báo và sử dụng.
• Cú pháp.
Function tên_hàm( ds_tham_số):kiểu_dữ_liệu_trả_về
{
Thân_hàm;
}
10
Vd:
Function func(a: int, st:String):void
{
Return st;
}
• Note: hàm với số lượng không xác định AS3 cung cấp cho ta
công cụ gọi là( rest ) tham số.
Function Add(…args):int
{
Var sum= 0;
For(var i:number = 0; i> args.length; i++)
{
Sum+=args[i];

}
Return sum;
}
3. Lập trình hướng đối tượng trong AS3.
 Lập trình hướng đối tượng trong AS3 cơ bản giống như trong ngôn ngữ
lập trình C, những điểm cần chú ý trong lập trình hướng đối tượng AS3.
3.1 Định nghĩa lớp.
Public class Tên_Class
{
// Khai báo các thuộc tính của lớp
// Các phương thức của lớp.
}
Với class có các từ khóa chỉ định sau.
 Dynamic: các thuộc tính có thể được bổ sung vào trong thể hiện lớp
tại thời điểm runtime.
 Internal: có thể nhìn thấy được trong cùng một package.
 Final: không cho phép kế thừa.
 Public: có thể nhìn thấy ở mọi nơi.
3.2 Tính kế thừa trong AS3.
AS3 là ngôn ngữ đơn kế thừa, tức là một lớp chỉ có thể kế thừa từ một
lớp cơ sở. để thể hiện tính kế thừa ta khai báo theo cú pháp sau:
Public class Tên_Class extends Tên_lớp_kế_thừa
{
}
11
3.3 Interface trong AS3
Dù tính đơn kế thừa phản ánh đúng thực tế của mỗi thực thể, nhưng tính
đa kế thừa mang lại cho ngôn ngữ sức mạnh lập trình hướng đối tượng,
vì vậy AS3 cũng như các ngôn ngữ lập trình khác, nó bổ sung khái niệm
Interface.

Sự khác nhau giữa AS3 với các ngôn ngữ lập trình khác là nó không hỗ
trợ lớp abstract, trong interface nó chỉ chưa khai báo phương thức chứ
không chứa thuộc tính.
Một lớp có thể kế thừa từ 1 lớp cơ sở nhưng nó có thể thực thi nhiều
giao diện- interface.
4. Sự kiện trong AS3.
4.1 Sự kiện chuột.
a. Thư viện: import flash.events.MouseEvent;
b. Cú pháp tạo sự kiện: stage.addEventListener(MouseEvent.Click,
func);
c. Giải thích:
• Hàm addEventListener dùng để add sự kiện cho đối tượng, cụ thể
ở đây là stage.
• Tham số Event: ở đây là sự kiện chuột MouseEvent, với phương
thức tương ứng như Click, DoubleClick,…
• Func: là một hàm sẽ thực thi khi sự kiện được gọi.
4.2 Sự kiện bàn phím.
a. Thư viện: import flash.events.KeybroadEvent;
b. Cú pháp tạo sự kiện: stage.addEventListener(KeybroadEvent.Click,
func);
c. Giải thích:
• Hàm addEventListener dùng để add sự kiện cho đối tượng, cụ thể
ở đây là stage.
• Tham số Event: ở đây là sự kiện bàn phím KeybroadEvent, với
phương thức tương ứng. KeybroadEvent.Key_Up: sự kiện khi
nhấn mũi tên lên, …
• Func: là một hàm sẽ thực thi khi sự kiện được gọi.
4.3 Sự kiện Frame.
a. Thư viện: import flash.events.Event;
b. Cú pháp tạo sự kiện:

stage.addEventListener(Event.ENTER_FRANE, func);
12
c. Giải thích:
• Hàm addEventListener dùng để add sự kiện cho đối tượng, cụ thể
ở đây là stage.
• Chức năng: hàm func sẽ được gọi khi mở frame.
• Func: là một hàm sẽ thực thi khi sự kiện được gọi.
4.4 Sự kiện Timer.
a. Thư viện: import flash.events.TimerEvent;
b. Cú pháp tạo sự kiện:
var timer:Timer = new Timer(delay:Number, repeatCount:int);
stage.addEventListener(Event.ENTER_FRANE, func);
c. Giải thích:
• Hàm addEventListener dùng để add sự kiện cho đối tượng, cụ thể
ở đây là timer.
• Chức năng: hàm func sẽ được gọi khi timer.start được gọi và lặp
lại trong thời gian delay, số lần thực hiện là repeatCount.
• Func: là một hàm sẽ thực thi khi sự kiện được gọi.
4.5 Xóa sự kiện.
a. Cú pháp tạo sự kiện:
Timer.removeEventListener(Event.ENTER_FRANE, func);
b. Giải thích:
• Hàm addEventListener dùng để xóa sự kiện cho đối tượng, cụ thể
ở đây là Timer.
• Func: là một hàm mà sự kiện sẽ gọi.
III. Cơ bản về lập trình game trong Actionscript.
1. Ưu nhược điểm của lập trình game bằng Actionscript.
1.1. Ưu điểm.
13
-

-
-
-
Flash player là một plug-in trình duyệt phổ biến cho phép SWF flash
chơi được trên internet và đi kèm với hầu hết các máy tính mới chạy hệ
điều thành microsoft windows, điều này có nghĩa rằng trò chơi hoặc
hình ảnh động của bạn có thể được nhúng vào các trang web một cách
dễ dàng và game của bạn sẽ ai cũng có thể chơi được nó.
AS3 cho phép bạn tạo ra các hệ thống phức tạp theo dõi các yếu tố trò
chơi quan trọng như thanh máu, điểm số, kịch bản đối phương và thao
tác nhân vật, điều này cho phép bạn tạo ra các trò chơi vui nhộn và thú
vị với các điều khiển phức tạp.
Flash là công cụ tốt cho việc tạo hình ảnh động, đèn flash của các tính
năng như Tweeen, sẽ giúp bạn cung cấp cho các hình ảnh động trò chơi
trơn tru của bạn mà không cần tạo rất nhiều nghệ thuật sprite hoặc tạo
hiệu ứng động các mô hình 3D.
Flash primarially sử dụng đồ họa vector. Điều này có nghĩa rằng bạn có
thể bao gồm rất nhiều đồ họa độc đáo và kích cỡ sẽ vẫn còn trương đối
nhỏ. Nó cũng có nghĩa rằng đồ họa của trò chơi của bạn sẽ có quy mô
tùy thuộc vào kích cỡ màn hình của người dùng.
1.2. Nhược điểm.
-
-
-
-
-
ActionScript là ngôn ngữ lập trình được sử dụng trong nhiều trang web
và các trò chơi máy tính, chủ yếu chạy trên web.
Ngôn ngữ được sử dụng chủ yếu trong Adobe Flash với định dạng .fla,
điều này được xem trên web với định dạng .swf, Ngôn ngữ lập trình này

làm việc tốt nhất cho phim hoạt hình và các ứng dụng trên web, các
ngôn ngữ lập trình được chơi bên trong trình duyệt.
Flash không được thích hợp cho lập trình cấp thấp.
Trường hợp ngôn ngữ cấp cao sẽ được tải các tập tin lớn hơn nhanh
hơn, điều này là nhanh hơn để viết so với một ngôn ngữ cấp thấp, bởi vì
một dòng của kịch bản sẽ so sánh với 10 mã máy, so với ngôn ngữ cấp
thấp chỉ đơn giản là sẽ có một dòng cho một mã máy.
ActionScript cũng được chứa trong mã html của trang web.
2. Sơ lược về thiết kế Game
2.1. Giới thiệu thiết kế game trong flash.
Quá trình thiết kế game có thể giúp bạn cấu trúc lại ý tưởng và xây dựng
game của bạn tốt hơn, linh hoạt hơn, hoàn hảo hơn. Một thiết kế tốt cần
có kế hoạch tốt, ý tưởng, mã nguồn, âm thanh và đồ họa của game.
-
Tất cả các trò chơi nên có quy tắc và mục tiêu, tiêu chí cho sự thành
công hay thất bại.
14
-
-
-
-
-
-
-
-
Thiết kế game nên cung cấp một môi trường hoặc định hình với các đối
tượng.
Các trò chơi nên có một bối cảnh, kịch bản liên quan tới phát triển nhân
vật.
Người chơi sẽ có thể đạt được một mục tiêu của game.

Các trò chơi nên có một sự thách thức với người chơi.
Chế độ khen thưởng, ưu đãi trong game để tạo ra sự hứng thú cho người
chơi.
Các trò chơi nên có thể dễ dàng tìm hiểu nhưng khó khăn để làm chủ.
Rules nên đơn giản và nhanh chóng phản hồi nên có sẵn thông qua
các trò chơi.
hiệu ứng âm thanh nên được sử dụng để tăng niềm vui và hứng thú.
2.2. Ví dụ về thiết kế game.
3. Các đối tượng, phương thức trong thiết kế Game.
3.1. Đối tượng Array.
-
-
-
-
Khai báo Array không đối số:
Var thisarray:Array = new Array();
Khi khởi tạo độ dài của Mảng sẽ bằng 0.
Để lấy độ dài của mảng hiện tại ta dùng thisarray.length
Khai báo Array có đối số
Var thisarray:Array = [“Red”,”Green”,”Blue”];
Khi khởi tạo độ dài của Mảng sẽ bằng số phần tử thêm vào.
Thêm phần tử vào mảng.
Phương thức Push: dùng để thêm một phần tử vào cuối mảng, phương
thức trả về độ dài của mảng sau khi thêm vào.
Phương thức Unshift(): dùng để thêm một phần tử vào đầu mảng,
phương thức trả về độ dài của mảng sau khi thêm vào.
Phương thức splice(): dùng để thêm một hoặc nhiêu phần tử vào mảng ở
vị trí cho trước, phương thức trả về độ dài của mảng sau khi thêm vào.
 Các đối số của splice()
• Số nguyên đầu tiên xác định vị trí chèn vào

• Số nguyên tiếp theo xác định có bao nhiêu mục cần xóa
vào thời điểm đó.
• Đối số tiếp theo là danh sách các phần tử được chèn vào.
Xóa phần tử mảng.
15
Phương thức Pop(): dùng để xóa phần tử cuối cùng của mảng. phương
thức trả về phần tử đã bị xóa.
Phương thức shift():dùng để xóa phần tử đầu của mảng. phương thức trả
về phần tử đã bị xóa.
Phương thức splice(): dùng để xóa một hoặc nhiều phần tử của mảng tại
vị trí cho trước, phương thức trả về mảng con đã bị xóa.
 Các đối số của splice(): nếu số đối số của splice() là 2 thì gọi hàm
splice xóa, số đối số của splice() là 3 thì gọi hàm splice thêm vào.
• Số nguyên đầu tiên xác định vị trí bắt đầu xóa
• Số nguyên tiếp theo xác định có bao nhiêu phần tử cần
xóa tại vị trí đối số đầu tiên.
-
Sắp xếp phần tử của mảng.
Phương thức reverse(): dùng để đảo ngược mảng.
Phương thức sort(): dùng để sắp xếp mảng tăng dần.
3.2. Phương thức Drag và Drog.
-
-
StartDrag () phương pháp làm cho movie clip kéo mục tiêu tại thời
gian chạy, Chỉ có một đoạn phim có thể được kéo tại một thời điểm
sau khi một startDrag () được thực thi và kết thúc khi stopDrag().
Phương thức stopDrag dùng để kết thúc một MovieClip.startDrag().
4. The Display list.
Một trong những thay đổi ấn tượng nhất được giới thiệu bởi
ActionScript 3.0, đặc biệt cho các nhà thiết kế quen thuộc với các phiên bản

trước đó của ActionScript, là cách mà các yếu tố hình ảnh được thêm vào
một ứng dụng trong thời gian chạy.
Trong các phiên bản trước của ActionScript, một cách tiếp cận riêng
biệt được sử dụng để thêm vào một ứng dụng trong thời gian chạy, đòi hỏi
cú pháp khác nhau. Quản lý những tài sản đặc biệt, độ sâu quản lý, tạo ra và
phá hủy các đối tượng, cũng khá hạn chế. ActionScript 3.0 mang đến cho
nó một cách hoàn toàn mớ, Đó là danh sách hiển thị. Nó là một danh sách
phân cấp của tất cả các yếu tố hình ảnh trong tập tin của bạn. Nó bao gồm
các đối tượng phổ biến như các đoạn phim, nhưng cũng là đối tượng như
hình dạng và sprites mà trước đây không có hoặc không thể lập trình.
4.1. Các đối tượng trong Displaylist
16
Display Object
Shape Bitmap Video InteractiveObject AVM1Mo MorphSha Static text
Object viet pe
Single Button DisplayObjectContai
ner
TextField
Stage Sprite Loader
Movie
Clip
• DisplayObject
Bất cứ cái gì có thể tồn tại trong danh sách hiển thị là một đối tượng
hiển thị
• Shape
Đây là một hình chữ nhật, hình elip, đường thẳng, chúng được tạo ra
bằng công cụ vẽ.
• Video
Đây là một đối tượng hiển thị video
• InteractiveObject

Loại này bao gồm bất kỳ đối tượng hiển thị người dùng có thể tương
tác với việc sử dụng chuột hoặc bàn phím.
• SimpleButton
Lớp SimpleButton cho phép bạn kiểm soát tất cả các trường hợp của
các biểu tượng nút trong một tập tin SWF.
17
• TextField
Loại này bao gồm các yếu tố năng động và văn bản đầu vào, kiểm
soát với ActionScript.
• DisplayObjectContainer
Lớp này là tương tự như DisplayObject nó dùng để chỉ hiển thị nhiều
loại đối tượng. Sự khác biệt ở đây, tuy nhiên, là đối tượng này có thể
chứa Children. Tất cả các thùng chứa đối tượng hiển thị các đối tượng
màn hình hiển thị, nhưng chỉ hiển thị các đối tượng có thể có con
container trong đối tượng hiển thị.
• Stage
Stage nó là một phần của danh sách hiển thị.
• Sprite
ActionScript 3.0, Sprite chỉ đơn giản là một
movieclip mà không có một thời gian, và nó chỉ có một khung hiển
thị.
• Loader
Lớp này dùng để tải các tài sản bên ngoài vào trong danh sách hiển
thị, bo gồm cả Bitmap và SWF.
B. Demo
Demo game bắn máy bay flash
1. Ý tưởng và luật chơi.
-
-
-

-
-
Game thuộc thể loại game hành động bắn máy bay, bảo vệ lãnh thổ.
Trong game này người chơi sẽ di chuyển súng của xe tăng bằng chuột,
và bắn vào đối tượng máy bay, người chơi bắn trúng càng nhiều máy
bay thì số điểm và số Gold của người chơi sẽ càng tăng.
Người chơi sẽ có 7 thử thách để vượt qua, khi vượt qua mỗi thử thách
người chơi có thể mua một số vật phẩm như tăng tốc độ đạn, tăng thời
gian cho mỗi thử thách, Item nhân đôi số Gold, Item đạn laze, và phạm
vi sử dụng của mỗi Item là thử thác tiếp theo( của tiếp theo)
Nếu người chơi vượt qua được 7 thử thách của trò chơi người chơi sẽ
được số Gold nhất định và số Gold càng cao thì thứ hạng trên bảng xếp
hạng sẽ càng cao.
Nếu người chơi không được qua thử thách nào thì game sẽ dừng ở thử
thách đó.
18
2. Các đối tượng trong game.
1.1. Đối tượng máy bay.
-
-
Trong MovieClip MayBay có 3 loại máy bay ở 3 frame liên tiếp nhau,
mỗi máy bay sẽ có điểm lần lượt là 1 2 3
Mỗi đối tượng MayBay gồm có 3 thuộc tính:
• private var _TocDo:Number; // Tốc độ của máy bay
• public var _DaChet:Boolean = false; // Trạng thái của máy bay, đã
chết true, còn sống false
-
• public var _Diem:Number = 0; // Điểm của đối tượng máy bay
Mỗi đối tượng MayBay gồm có 3 phương thức:
• Khởi tạo máy bay:

public function MayBay(FToaDoY:Number,FTocDo:Number) {
var i:Number =Math.floor(Math.random()*5+1);
this.gotoAndStop(i); // chuyển qua frame máy bay
_Diem = i*10; // Điểm của đối tượng MayBay
this.y = FToaDoY; // tọa độ của máy bay
this.x = 0;
this._TocDo = FTocDo; // tốc độ của máy bay.
addEventListener(Event.ENTER_FRAME,funcMayBayBay); }
• Máy bay di chuyển:
Máy bay di chuyển tại một vị trí (0, y) (y ở đây là một số ngẫu nhiên).
Máy bay di chuyển theo đường thẳng từ trái sang phải.
Sự kiện máy bay di chuyển là
addEventListener(Event.ENTER_FRAME,funcMayBayBay);
public function funcMayBayBay(e:Event):void
{
this.x += _TocDo;
if(this.x > 500) // nếu máy bay di chuyển ra khỏi màn hình thì xóa máy bay
{
_DaChet= true;
func_deleteMayBay();
}
}
• Xóa máy bay:
public function func_deleteMayBay():void
{
19
removeEventListener(Event.ENTER_FRAME,funcMayBayBay);
this.parent.removeChild(this);
}
1.2.

Đối tượng xe tăng.
Đối tượng xe tăng gồm có 2 phần:
 Phần thân xe tăng: cố định ở vị trí (250, 500)
 Phần súng của xe tăng: được di chuyển theo khi người chơi di
chuyển chuột, sự kiện di chuyển chuột của người chơi như
sau:
stage.addEventListener(MouseEvent.MOUSE_MOVE,func_mousemove_sung);
public function func_mousemove_sung(e:MouseEvent)
{
var targetX:int
var targetY:int
= e.localX - 250;
= e.localY - 500;
SymSung.rotation = Math.atan2(targetY,targetX) * 180 / Math.PI;
var rotatio:int = Math.atan2(targetY,targetX) * 180 / Math.PI;
if (Math.abs(rotation - SymSung.rotation) > 180)
{
if (rotatio > 0 && this.rotation < 0)
{
SymSung.rotation -= (360 - rotatio + SymSung.rotation) / 10;
}
else if (this.rotation > 0 && rotatio < 0)
{
SymSung.rotation += (360 - rotatio + SymSung.rotation) / 10;
}
}
}
20
1.3.
Đối tượng đạn.

-
-
-
Trong MovieClip đạn có 2 loại đạn tương tương ứng ở 2 frame liên tiếp
là đạn thường và đạn laze.
Mỗi đối tượng đạn gồm có 3 thuộc tính.
• private var _Vx:Number; // tọa độ x của đạn
• private var _Vy:Number; // tọa độ y của đạn.
• private var _Speed:Number = 20; // tốc độ của đạn mặc định là 20;
• public var _DaTrung:Boolean = false; // trạng thái của đạn
• public var _LoaiDan:Number = 1; // loại đạn mặc định là 1( đạn
thường )
Mỗi đối tượng đạn gồm có 3 phương thức
• Khởi tạo đối tượng đạn.
Đối tượng đạn sẽ được khởi tạo khi người dùng click chuột.
public function Dan(FVx:Number,FVy:Number,TocDoTang:Number,LoaiDan:Number)
{
this.x = 250;
this.y = 500;
_Vx = FVx;
_Vy = FVy;
_Speed += TocDoTang;
_LoaiDan = LoaiDan;
this.gotoAndPlay(_LoaiDan);
addEventListener(Event.ENTER_FRAME,func_dan_enterframe);
}
• Phương thức bắn đạn.
Đạn được người chơi bắn ra sẽ nằm trên đường thẳng đi qua 2 điểm
(250, 500) và vị trí mà người chơi click chuột (mouseX, mouseY)
public function func_dan_enterframe(e:Event):void

{
var targetX:int = _Vx - 250;
var targetY:int = _Vy - 500;
this.rotation = Math.atan2(targetY,targetX) * 180 / Math.PI;
var vy:Number;
var vx:Number;
var rotation:int = Math.atan2(targetY,targetX) * 180 / Math.PI;
if (Math.abs(rotation - this.rotation) > 180)
{
if (rotation > 0 && this.rotation < 0)
{
this.rotation -= (360 - rotation + this.rotation) / 10;
}
else if (this.rotation > 0 && rotation < 0)
21
{
this.rotation += (360 - rotation + this.rotation) / 10;
}
}
if (this.rotation > 90 && this.rotation < -90)
{
vx = - _Speed* (Math.abs(this.rotation) - 90) / 90;
}
else
{
vx = _Speed * (90 - Math.abs(this.rotation)) / 90;
}
if (this.rotation < 0)
{
vy = - _Speed + Math.abs(vx);

}
else
{
vy = _Speed - Math.abs(vx);
}
this.x += vx;
this.y += vy;
if(this.y <0)
this._DaTrung = true;
}
• Phương thức xóa đối tượng đạn.
Đối tượng sẽ được xóa khi đạn ra khỏi màn hình chơi hoặc đã trúng
một máy bay nào đó.
function func_deleteDan()
{
this.parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,func_dan_enterframe);
}
22
3. Các cảnh chính trong game.
1.4. Frame 1:
23
1.5. Frame 2:
24
1.6. Frame 3:
25

×