Bài 37: Sắp xếp các mẩu hình

8826488 Sau khi có 15 mẩu hình được cắt ra từ hình chú chuột Mickey hoặc hình nào đó mà bạn thích, bạn cần đưa từng mẩu hình vào Flash và chuyển nó thành nhân vật. Cụ thể, trong Flash, bạn chọn File > Import > Import to Stage (hoặc ấn Ctrl+R). Trong hộp thoại Import, bạn tìm chọn mẩu hình đầu tiên Tile11.bmp. Flash sẽ hiển thị cửa sổ thông báo, hỏi rằng “This file appears to be part of a sequence of images. Do you want to import all...

Bài 36: Làm game ráp hình

8826486 Với kinh nghiệm đã có trong việc thực hiện trò chơi lật hình, bạn có thể tiếp tục thực hiện trò chơi tương tự: trò chơi ráp hình. Mỗi dự án cụ thể sẽ đem lại cho bạn những hiểu biết ngày càng sâu sắc về lập trình Flash. Trò chơi ráp hình có nhiều dạng. Ta sẽ chọn một dạng trò chơi ráp hình mà có lẽ bạn từng quen thuộc thuở bé: hình được phân thành những miếng nhựa hình vuông hoặc chữ nhật, được xếp “loạn xạ”...

Bài 35 : Làm Game tìm hình giống nhau

Trong trò chơi lật hình, sau khi người chơi lật hai hình (bấm vào một hình rồi bấm thêm một hình nữa), nếu hai hình không giống nhau, chúng bị “úp” trở lại. Nếu hai hình giống nhau, chúng giữ nguyên trạng thái. Ta xem đó là hai hình đã “hoàn thành nhiệm vụ”. Người chơi tiếp tục lật các hình khác và cố gắng ghi nhớ vị trí của các hình để có thể lật liên tiếp hai hình giống nhau. Khi không còn hình nào bị “úp”, trò...

Bài 34 : Những lỗi “nhỏ nhặt”

8826477 Khi chạy chương trình đã viết, thử bấm chuột để lật vài hình, rất có thể bạn thấy có hiện tượng lạ: bấm một phát nhưng lật được cả hai hình lân cận! Đó là sự “tiện lợi” không mong đợi. Điều ngày nghĩa là hình “được thêm” cũng cảm thấy cú bấm chuột trúng vào nó! Để kiểm tra xem tại sao như vậy, bạn mở bảng Library (gõ phím F11) nếu bảng Library chưa mở, bấm kép vào nhân vật Tile0 để chuyển qua chế độ chỉnh sửa...

Bài 33 : Úp hình và lật hình

8826476 Bạn đã viết được hàm xáo hình ngẫu nhiên cho trò chơi “lật hình”, trong đó bạn hoán đổi nhiều lần vị trí của hai hình được chọn ngẫu nhiên: tiles[r1][c1] và tiles[r2][c2]. Điều này nghĩa là hình ở hàng r1, cột c1 lấy vị trí của hình ở hàng r2, cột c2 và ngược lại. Nói khác đi, sau một lần hoán đổi, phần tử dãy tiles[r1][c1] trỏ đến hình ở hàng r2, cột c2, trong khi phần tử dãy tiles[r2][c2 ] trỏ đến hình ở hàng r1,...

Bài 32 : Xáo hình ngẫu nhiên

8826468 Bạn đã viết được chương trình để xếp 8 hình vào 16 vị trí (4 hàng, 4 cột), trong đó mỗi hình xuất hiện hai lần. Để mảng hình của ta không nằm sát biên trên và biên trái của sân khấu, bạn nên chỉnh sửa một chút việc quy định vị trí của các hình trong chương trình ở bảng Actions – Frame: tiles = new Array(); n = 0; for(i = 0; i < 4; i++) { tiles[i] = new Array(); for(j = 0; j...

Bài 31 : Trò chơi “lật hình”

8826462 Kiến thức về lập trình Flash mà bạn đã tích lũy cho phép nghĩ đến trò chơi phức tạp hơn trước. Bạn đã hiểu biết về dãy, vì vậy chỉ cần đặt tên thích hợp cho những thể hiện, bạn dễ dàng điều khiển nhiều thể hiện trên sân khấu. Ta có thể xem xét trò chơi “lật hình” quen thuộc, trong đó người chơi bấm chuột để lật hai hình liên tiếp, nếu hai hình đó giống nhau, chúng không bị úp xuống trở lại. Trò chơi kết...

Bài 30 : Chỉ mục của dãy

8826459 Nếu đã vui đùa với dãy qua các bài trước và có kinh nghiệm nhất định với các ngôn ngữ lập trình khác, bạn nhận ra ngay khái niệm dãy trong Flash (nói cụ thể hơn, trong ngôn ngữ ActionScript) có nhiều nét thú vị, khác lạ. Ta hãy tìm hiểu thêm một nét khác lạ nữa: bên cạnh cách thức truy xuất phần tử trong dãy bằng chỉ số, bạn có thể truy xuất phần tử trong dãy bằng một chuỗi được gán cho phần tử. Cụ thể,...

Bài 29 : Dãy nhiều chiều

8826455 Bạn đã thấy rằng ta có thể đặt các số hoặc các chuỗi nào đó vào dãy. Phần tử của dãy có thể là mọi thứ. Nếu mỗi phần tử của dãy lại là một dãy khác, bạn có dãy hai chiều (2D array). Để làm quen với dãy hai chiều, bạn hãy mở tập tin Flash mới và gõ đoạn mã như sau trong bảng Actions – Frame (ứng với khung 1): arr = new Array(); for(i = 0; i < 3; i++) { arr[i] =...

Bài 28 : Vui đùa với dãy

8826452 Bạn đã biết đến khái niệm dãy (array). Ta hãy tiếp tục “quậy” với dãy thêm chút nữa, chuẩn bị cho việc thực hiện các trò chơi có dùng đến dãy. Điều này cần thiết giống như bạn vui đùa với bóng trước khi đá bóng thực sự. Bạn hãy mở tập tin mới trong Flash và viết đoạn mã như sau trong bảng Actions – Frame: arr = ["mãng cầu", "dừa", "đu đủ", "xoài"]; trace(arr); subarr = arr.slice(0,1); trace(subarr); subarr = arr.slice(2,3); trace(subarr); subarr = arr.slice(2);...

Bài 27 : Hành vi của dãy

8826449 Bạn đã làm quen với dãy và biết cách đặt các trị số vào dãy, tạo thành các phần tử của dãy. Khi đặt một trị số vào dãy, bạn chỉ ra vị trí của nó trong dãy. Dãy tự động dài ra theo nhu cầu của bạn. Thao tác trên dãy có lẽ khiến bạn hình dung rằng dãy chẳng qua chỉ là các “ô chứa” xếp thành hàng trong bộ nhớ máy tính. Điều đó đúng nhưng… chưa đủ. Dãy là một đối tượng có khả năng...

Bài 26 : Thao tác trên dãy

8826444 Trong trò chơi “bắt sao biển” đã thực hiện, bạn chỉ có hai nhân vật (sao biển và cá nóc) và bạn gọi tên chúng (star và fish) khi cần “liên hệ công tác”. Thử hình dung trò chơi nào đó có nhiều thể hiện của nhiều nhân vật khác nhau, không ngừng sinh ra và mất đi, bạn thấy ngay rằng cách thức quản lý “thủ công” các thể hiện của trò chơi “bắt sao biển” sẽ không phù hợp. Trong trường hợp như vậy, số lượng thể hiện...

Bài 25 : Nút bấm khởi động

8826443 Bạn đã thấy cách thức tạo nút bấm rất đơn giản: chỉ cần định nghĩa hàm xử lý tình huống onPress của nhân vật được dùng làm nút bấm. Muốn cho nút bấm có vẻ “chuyên nghiệp” hơn, bạn đã tạo ra ba khung chốt liên tiếp trong thời tuyến của nút bấm, đặt tên là _up, _over, _down. Đó là các tên bắt buộc theo quy ước của Flash, bạn đừng đặt tên khác đi (chú ý đừng viết thiếu dấu gạch chân _). Quan sát thời tuyến của...

Bài 24 : Tạo nút bấm

8826437 Khi thử gán hàm xử lý tình huống onPress cho một thể hiện được tạo ra lúc chạy chương trình, có lẽ bạn thấy hàm onPress thú vị hơn hàm onMouseDown. Hàm onPress chỉ được gọi khi người dùng bấm trúng thể hiện. Chắc rằng điều này khiến bạn nghĩ ngay đến việc tạo ra một nút bấm trong chương trình của mình. Quả thực, ta có thể vẽ hình bất kỳ để làm nút bấm. Muốn chương trình làm gì đó khi người dùng bấm nút, chỉ cần...

Bài 23 : Gán hành vi vào thể hiện

8826431 Bạn đã biết rằng hành vi của một thể hiện bao gồm các hàm xử lý tình huống như onClipEvent(mouseDown), onClipEvent(load), onClipEvent(enterFrame),… Thông thường, bạn kéo nhân vật từ bảng Library vào sân khấu để tạo ra thể hiện của nhân vật. Bạn quy định hành vi của thể hiện bằng cách bấm chọn thể hiện và viết các hàm xử lý tình huống cho thể hiện được chọn trong bảng Actions – Movie Clip. Đối với thể hiện được tạo ra vào lúc chạy chương trình, cách quy định...

Bài 22 : Nhân vật trống rỗng

8826419 Bạn hãy mở lại tập tin FLA chứa đoạn mã thử nghiệm việc tạo các thể hiện vào lúc chạy chương trình. Ta đã viết “nhăng nhít” ở khung 1 của thời tuyến chính, do đó bạn cần bấm vào khung 1 trong bảng Timeline, gõ F9 để mở bảng Actions – Frame. Các câu lệnh đã viết tạo ra các thể hiện khác nhau của nhân vật Oval. Bạn đã tạo ra nhân vật Oval từ trước bằng cách vẽ hình ô-van và chuyển hình đó thành nhân vật. ...

Bài 21 : Sao chép thể hiện

8826413 Bạn đã thử nghiệm các câu lệnh tạo thể hiện. Từ sân khấu trống trơn, các thể hiện được tạo ra vào lúc chạy chương trình. Trong chương trình, bạn có thể thay đổi các thuộc tính của thể hiện như vậy một cách bình thường. Bạn hãy mở lại tập tin FLA chứa các câu lệnh thử nghiệm. Ta sẽ tiếp tục tìm hiểu việc xóa bỏ thể hiện và sao chép thể hiện vào lúc chạy. Trong bảng Actions – Frame chứa chương trình ứng với khung...

Bài 20: Câu lệnh tạo thể hiện

8826406 Bạn đã biết cách tạo ra thể hiện của nhân vật: trỏ vào tên nhân vật trong thư viện, kéo vào sân khấu. Ngoài cách thức thủ công như vậy, ta còn có thể tạo ra thể hiện của nhân vật bằng câu lệnh ActionScript, nghĩa là tạo ra thể hiện vào lúc chạy chương trình. Đó là việc thường làm khi lập trình Flash vì ta không luôn luôn biết trước cần có bao nhiêu thể hiện trên sân khấu. Số lượng thể hiện trên sân khấu có thể...