Tìm hiểu về ngôn ngữ actionscript và cơ bản về lập trình game trên cs5
Trang 1BỘ 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
Trang 2Mụ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
Trang 3A Tìm hi u v CS5 ểu về CS5 ề CS5
I Các khái ni m c b n trong Adobe Flash CS5 ệm cơ bản trong Adobe Flash CS5 ơ bản trong Adobe Flash CS5 ả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ượngxó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óakhông cho phép chỉnh sửa đối tượng trên layer, cho phép đối tượng trênlayer 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
Trang 43 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 đốitượ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ànhmộ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áccảnh quay trong movie
5 Bi u t ểu về CS5 ượng Graphic 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
Trang 5Hì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 ểu về CS5 ượng Graphic 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
Trang 6Hì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
Trang 7
-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ượngColor 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 ểu về CS5 ượng Graphic 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ộtbiể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ínhcủ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 ểu về CS5 ề CS5 ữ 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 chocác ứng dụng phát triển và thích hợp cho phát triển game
Trang 81 Vùng so n th o ActionScript ạn thảo ActionScript ản trong Adobe Flash CS5.
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áckhí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
Trang 9Có 2 dạng số nguyên được hổ trợ trong AS là kiểu số nguyên có dấuint 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ủaxâ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:
Trang 10const 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
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ệnLệnh trong vòng lặp
b Câu lệnh For Each in
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
Trang 113 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ớptạ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ộtlớ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{
}
Trang 123.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ệmInterface
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ềugiao 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);
a Thư viện: import flash.events.KeybroadEvent;
b Cú pháp tạo sự kiện: stage.addEventListener(KeybroadEvent.Click,func);
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);
Trang 13c 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
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 ơ bản trong Adobe Flash CS5 ản trong Adobe Flash CS5 ề CS5 ập trình game trong Actionscript.
1 u nh Ưu nhược điểm của lập trình game bằng Actionscript ượng Graphic c đi m c a l p trình game b ng Actionscript ểu về CS5 ủa lập trình game bằng Actionscript ập trình game trong Actionscript ằng Actionscript.
1.1 Ưu điểm
Trang 14dễ 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à thaotá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ínhnăng như Tweeen, sẽ giúp bạn cung cấp cho các hình ảnh động trò chơitrơn tru của bạn mà không cần tạo rất nhiều nghệ thuật sprite hoặc tạohiệ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 đốinhỏ 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
-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àylàm việc tốt nhất cho phim hoạt hình và các ứng dụng trên web, cácngô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 nhanhhơ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ấpthấ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 ượng Graphic về thiết kế Game c
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ựnggame 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
Trang 15Ngườ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ườichơ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 quacá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.lengthKhai 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
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óavà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
Trang 16Phương thức Pop(): dùng để xóa phần tử cuối cùng của mảng phươngthứ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àmsplice 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ầnxó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ờigian chạy, Chỉ có một đoạn phim có thể được kéo tại một thời điểmsau 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ởiActionScript 3.0, đặc biệt cho các nhà thiết kế quen thuộc với các phiên bảntrướ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êngbiệ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