Đẳng Cấp Học Sinh

Đẳng Cấp Học Sinh

Đại Ân 2
 
Trang ChínhPortalCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Tự sáng tạo trò chơi với phần mềm Game Maker (phần 2)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
zavasaki11
Thành Viên Cấp 2
Thành Viên Cấp 2


Tổng số bài gửi : 21
Join date : 03/05/2012
Age : 23
Đến từ : Đại Ân 2

Bài gửiTiêu đề: Tự sáng tạo trò chơi với phần mềm Game Maker (phần 2)   Mon May 21, 2012 4:14 pm

Một cơ hội tuyệt vời dành cho những ai thích mày mò sáng tạo game cho riêng mình mà không có thời gian theo học những khoá dài hạn...

Khái niệm object (đối tượng)

Những nguồn hình ảnh và âm thanh mà các bạn đã làm quen ở phần trước là yếu tố khởi đầu của Game Maker. Tuy nhiên, nguồn quan trọng nhất của chương trình chính là các object. Đây chính là những thực thể làm nên một trò chơi. Thường thì chúng được thể hiện bằng hình ảnh để bạn nhìn thấy; chúng có những "hành vi" vì phải "phản ứng" lại một số "sự kiện". Tất cả những gì bạn nhìn thấy trong game chính là các object (tất nhiên trừ background). Nói một cách chính xác hơn, background là khoảng cách giữa các object. Các nhân vật, những con quái vật, gờ tường, vũ khí... là các object. Có một số object bạn không nhìn thấy nhưng nó có chức năng điều khiển trong quá trình chơi.

Chúng ta hãy phân biệt sự khác nhau giữa sprite và object. Sprite là những hình ảnh (tĩnh hoặc động) nhưng không có "hành vi" nào. Object thì có cả sprite để thể hiện đồ hoạ và cả "hành vi" nữa. Nếu không có "hành vi" thì sẽ không có game.

Cũng cần phải phân biệt sự khác nhau giữa object và instance. Object mô tả cả một loại thực thể nào đó, ví dụ như một con quái vật. Và có rất nhiều trường hợp riêng lẻ (instance) của đối tượng này trong game. Do đó, khi nói đến instance là ám chỉ đến một đối tượng cụ thể của object.

Để thêm một object vào game, chọn chức năng Add Object và hộp thoại sau đây sẽ hiện ra.



Chức năng này khá phức tạp. Ở bên trái có một số thông tin chung về object. Ở giữa là danh sách các "sự kiện" có thể xảy ra với các object. Ở bên phải là những hành động khác nhau mà một object có thể thực hiện. các "sự kiện" và hành động sẽ được nói ở phần sau.

Trước hết, bạn hãy đặt tên cho object. Sau đó, chọn sprite cho object. Nhấp chuột trái vào hộp sprite hoặc biểu tượng bên cạnh đó thì bạn sẽ thấy một cửa sổ bé hiện lên để bạn chọn các sprite có sẵn. Nếu chưa có sprite nào, hãy nhấn nút New để thêm sprite mới. Cũng vậy, dùng chức năng Edit, bạn sẽ thay đổi được sprite và làm thế này thì nhanh hơn là chọn nguồn trong danh sách rồi chỉnh sửa ngay trong đó.

Ngay bên dưới có hai hộp trạng thái. Visible nếu được đánh dấu thì có nghĩa là instance của object này có thể nhìn thấy. Ví dụ như bạn có thể dùng chúng làm điểm di chuyển cho một con quái vật chẳng hạn. Những object không nhìn thấy sẽ "phản ứng" với các "sự kiện" và những instance khác sẽ "va chạm" với chúng. Hộp trạng thái Solid nếu được đánh dấu thì có nghĩa là object đó thuộc dạng "cứng" (như bờ tường chẳng hạn). Những va chạm đối với các object "cứng" được xử lý khác so với những object "mềm". Bạn nên dùng trạng thái solid đối với các object không di chuyển.

Khái niệm về event ('sự kiện')

Game Maker sử dụng phương pháp xử lý theo event và hoạt động như sau: Bất cứ khi nào có một điều gì đó xảy ra trong game, các instance của object có "sự kiện" (loại thông điệp cho biết có sự kiện xảy ra). Sau đó, những instance này có thể "phản ứng" với những thông điệp này bằng cách thực hiện một số hành động nào đó. Đối với mỗi object, bạn phải chỉ ra nó phải "phản ứng" với sự kiện nào và phải thực hiện hành động nào. Điều này nghe có vẻ phức tạp nhưng thực ra rất dễ dàng. Trước hết, đối với hầu hết các sự kiện thì object không phải làm gì cả, còn những sự kiện yêu cầu phải có hành động gì đó thì bạn chỉ cần sử dụng cách kéo-thả để xác định hành động là được.

Ở ô giữa là danh sách các sự kiện mà object phải phản ứng lại. Bạn có thể thêm vào bằng cách nhấn phím Add Event. Tại đây, bạn có thể chọn các loại sự kiện khác nhau như Alarm (báo động), Collision (va đập)... và mỗi mục lại có vô số lựa chọn khác nhau.

Tiếp theo là phần Actions tương ứng với các event. Để thêm các hành động vào danh sách, bạn hãy kéo biểu tượng bên phải và thả vào hộp Actions này. Chúng sẽ được đặt nối tiếp nhau với một mô tả ngắn ở bên cạnh. Đối với mỗi action, bạn sẽ phải chọn các thông số (điều này sẽ được thảo luận kỹ ở phần dưới). Như vậy, sau khi lựa chọn, bạn sẽ có kết quả ví dụ như thế này:



Lúc này bạn có thể bắt đầu thêm action cho những event khác. Dùng chuột trái nhấn vào đúng event cần thêm hành động rồi áp dụng các thao tác "kéo-thả".

Khi chọn Add Event, bạn sẽ thấy hiện ra hộp thoại sau:



Create event
Event này diễn ra khi một instance của object được tạo ra. Chức năng này thường được dùng để thiết lập instance chuyển động hoặc các trạng thái khác nhau của instance.

Destroy event
Event này được tạo ra khi instance bị phá huỷ. Nói chính xác hơn là nó xảy ra ngay trước khi instance bị phá huỷ, vì vậy trong quá trình xảy ra event này thì instance vẫn tồn tại. Thường thì event này không được sử dụng, nhưng bạn có thể dùng để thay đổi điểm số hay tạo object khác.

Alarm events
Mỗi instance có 12 đồng hồ báo động. Bạn có thể đặt các đồng hồ này bằng cách sử dụng những action (hành động) nào đó (xem phần sau). Đồng hồ báo động sau đó sẽ đếm ngược cho đến khi bằng 0 và tại thời điểm này, "sự kiện" báo động được tạo ra. Để xác định những hành động cho một đồng hồ báo động nào đó, bạn cần phải chọn từ menu. Đồng hồ này rất hữu dụng và bạn có thể dùng để tạo ra những hoạt động liên tục, ví dụ như làm cho một con quái vật cứ 20 bước lại đổi hướng đi một lần. (Trong trường hợp như vậy, mỗi hành động trong event phải thiết lập đồng hồ báo động lại).

Step events
'"Sự kiện" step diễn ra ở mỗi bước đi trong game. Tại đây bạn có thể thiết lập những hành động cần thực hiện liên tục. Ví dụ: nếu một object phải đi theo một object khác, bạn có thể áp dụng hướng chuyển động đối với object mà mình đang đi theo. Hãy cẩn thận với việc này. Bạn không nên thiết lập quá nhiều hành động phức tạp trong "sự kiện" step của những object có nhiều instance. Nếu làm như thế, tốc độ của game sẽ diễn ra rất chậm. Nói chính xác hơn là có 3 "sự kiện" step khác nhau là Step, Begin Step, End Step. Begin Step được thực hiện vào lúc bắt đầu step, trước khi bất kỳ sự kiện nào khác xảy ra. Step được thực hiện ngay trước khi các instance được đặt vào các vị trí mới. End Step được thực hiện vào cuối mỗi step và thường được dùng để thay đổi sprite tuỳ theo hướng chuyển động hiện thời.

Collision events
Bất cứ khi nào hai instance "đụng" nhau (thực chất là các sprite chồng lên nhau), thì "sự kiện" collision xuất hiện. Nói chính xác hơn là hai sự kiện collision xảy ra, mỗi collision cho một instance. Instance có thể phản ứng lại với sự kiện này. Trên thực đơn, bạn có thể chọn object mà bạn muốn áp dụng sự kiện này. Sau đó bạn có thể thiết lập các hành động tại đây.

Có một sự khác biệt giữa những gì diễn ra khi instance "đụng độ" với một object dạng "cứng" và dạng "mềm". Trước hết, khi không có hành động nào trong sự kiện collision thì không có gì xảy ra cả. Instance hiện thời đơn giản là cứ di chuyển, thậm chí khi object kia ở dạng "cứng". Còn khi sự kiện này có các hành động thì những điều sau đây sẽ xảy ra:

Khi object kia thuộc dạng "cứng", instance được đặt lại vị trí cũ (trước khi sự kiện collision diễn ra). Sau đó sự kiện được thực hiện. Cuối cùng, instance được di chuyển đến vị trí mới. Do đó, ví dụ nếu một sự kiện, chẳng hạn như quay ngược hướng chuyển động, thì instance cứ va vào tường mãi. Còn nếu có sự kiện collision thì instance vẫn ở vị trí trước đó và ngừng di chuyển.

Khi object kia thuộc dạng "mềm" thì instance không được đặt ngược lại. Sự kiện này đơn giản được thực hiện với instance ở vị trí hiện tại và không được kiểm tra lần hai. Có rất nhiều cách sử dụng sự kiện collision và các instance có thể dùng nó để va đập vào các gờ tường. Bạn cũng có thể sử dụng nó để phá huỷ các object khi chúng bị dính đạn chẳng hạn.

Keyboard events
Khi người chơi nhấn một phím nào đó, sự kiện keyboard diễn ra đối với tất cả các instance của mọi object. Đối với mỗi phím thì có một sự kiện. Trong thanh menu, bạn có thể chọn phím nào đó cho các object mà bạn muốn. Bạn có thể thiết lập sự kiện cho mỗi step miễn là người chơi nhấn phím liên tục. Ở đây có hai loại sư kiện keyboard đặc biệt là <No key> (Không nhấn phím) và <Any key> (Nhấn bất kỳ phím nào). Khi người chơi nhấn nhiều phím, các sự kiện dành cho tất cả những phím được nhấn đó đều xảy ra. Chú ý một điều là những phím trong khoảng phím số trên keyboard chỉ tạo ra các sự kiện tương ứng khi đèn Numlock sáng.

Mouse events
Sự kiện về chuột diễn ra đối với một instance bất cứ khi nào con trỏ chuột nằm trong sprite thể hiện instance này. Tuỳ vào những phím chuột nào được nhấn, bạn có thể có sự kiện "không nhấn chuột", "chuột trái", "chuột phải" hay "chuột giữa". Các sự kiện phím chuột được tạo ra khi phím đó được nhấn. Còn các sự kiện "thả" chuột được tạo ra khi phím đó được nhả ra. Nếu bạn muốn phản ứng với các sự kiện nhấn chuột hay thả chuột ở một điểm tuỳ ý, hãy sử dụng chức năng "global mouse" ở thanh menu nhỏ.

Có hai sự kiện đặc biệt dành cho chuột. Một là sự kiện nhấn chuột xảy ra khi chuột được nhấp vào instance. Sự kiện thả chuột xảy ra khi chuột được thả khỏi instance. Những sự kiện này được áp dụng chủ yếu để thay đổi hình ảnh hoặc chơi nhạc. Các sự kiện di chuyển bánh xe chuột lên và xuống xảy ra khi người sử dụng quay bánh xe. Ngoài ra còn có rất nhiều sự kiện áp dụng cho bộ điều khiển (joystick) của máy chơi game chuyên dụng. Bạn có thể xác định các hành động cho 4 hướng hay 8 hướng của bộ điều khiển chính và phụ.

Các event khác

Ngoài ra có vô số event khác rất hữu dụng trong game và bạn có thể tìm thấy chúng trong menu này.

Outside: Sự kiện này xảy ra khi instance nằm hoàn toàn ngoài Room (không gian game - sẽ nói kỹ ở phần sau). Đây là thời điểm thích hợp để phá huỷ nó.

Boundary: Sự kiện này xảy ra khi instance cắt ranh giới của Room.

Game start: Điều này xảy ra với tất cả các instance ở Room đầu tiên khi trò chơi bắt đầu. Nó diễn ra trước khi sự kiện Room start (xem phần dưới). nhưng sau các sự kiên khởi tạo cho các instance trong Room. Sự kiện này thường được xác định trong một object "điều khiển" và được dùng để khởi động nhạc nền, tải dữ liệu...

Game end: Sự kiện này xảy ra đối với tất cả các instance khi game kết thúc. Thường thì chỉ một object xác định sự kiện này, ví dụ như để lưu trữ dữ liệu nào đó trong tậo tin.

Room start: Sự kiện diễn ra đối với tất cả các instance khi Room khởi động và sau các sự kiện khởi tạo.

Room end: Xảy ra đối với tất cả các instance đang tồn tại khi Room kết thúc.

No more lives: Có một hành động để thiết lập và thay đổi số "lần sống" của đối tượng game. Bất cứ khi nào con số nào ít hơn hay bằng 0 thì sự kiện này xảy ra. Chức năng không thêm lần sống xảy ra khi muốn kết thúc hoặc khởi động lại game.

No more health: Bất cứ khi nào "máu" giảm xuống bằng hoặc nhỏ hơn 0 thì sự kiện này xảy ra. Dùng chức năng không thêm máu khi muốn giảm số lần sống và khởi động lại trò chơi.

End of animation: Kết thúc hình ảnh động. Như đã nhắc đến ở trên, một hình ảnh động bao gồm rất nhiều hình ảnh nối tiếp nhau. Sự kiện này sẽ xảy ra đúng lúc hình cuối cùng kết thúc và có thể áp dụng để thay đổi hình ảnh động hay huỷ instance.

End of path: Kết thúc path (đường đi của đối tượng - sẽ nói ở phần sau). Sự kiện này diễn ra khi instance đi theo một quãng đường và đến tận cùng quãng đường đó.

User defined (do người dùng xác định). Có 16 sự kiện thuộc loại này và thường do người dùng tự thêm vào bằng các dòng mã.
Về Đầu Trang Go down
Xem lý lịch thành viên
 

Tự sáng tạo trò chơi với phần mềm Game Maker (phần 2)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Đẳng Cấp Học Sinh :: Lập Trình - Thiết Kế :: Phát Triển Game :: Game Maker-