Code Trong Game

Một phần của tài liệu Báo cáo Công nghệ phần mềm, làm quen với Unity và làm game 2D đơn giản (Trang 33)

3. DỮ LIỆU GAME CHRISTMAS EVE

3.2 Code Trong Game

Ngôn ngữ được chọn để lập trình game là ngôn ngữ C# trên MonoDeveloper được Unity hỗ trợ.

Hình 4.5 Code C# có trong game

4. MỘT SỐ CLASS QUAN TRỌNG TRONG GAME 4.1 Santafailscript

Hình 4.6 Class santafailscript

Ý nghĩa: đây là đoạn script của đối tượng santa (ông già noel) để điều khiển cách di chuyển của đối tượng này.

+Hàm start(): Đây là hàm mặt định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo file âm thanh bellClip (tiếng chuông ông già noel) và đặt các giá trị, biến được dùng là flyPower , gameover (nếu đối tượng gameover là null thì tìm với tag là “gameover” được đặt trước).

+Hàm gameover(): dừng phát âm thanh (bellClip) và gọi hàm gameover từ class gamecontroller.

+Hàm update(): ở hàm này chương trình sẽ nhận vào input là 1 lần click chuột trái hoặc 1 chạm vào màn hình để tăng vị trí trục y của đối tượng santa thêm flyPower đơn vị.

+Hàm OnTriggerEnter2D(): đây là một trong những hàm đặc biệt của unity để xử lý va chạm xuyên vật thể để kích hoạt một hành động nào đó – Trong trường hợp này là tính điểm khi va chạm với hộp quà (gift) trong game.

+Hàm OnCollisionEnter2D():hàm đặc biệt của unity để xử lý va chạm vật thể để kích hoạt một hành động nào đó – Trong trường hợp này là gọi hàm gameover và đặt biến gameover là true.

Hình 4.7 Class Backgroundscript

Ý nghĩa: đây là đoạn script của hình nền (back ground) để điều khiển vòng lặp của đối tượng này.

+Hàm start(): Đây là hàm mặt định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là đặt vị trí ban đầu của hình nền (startpossition) và tốc độ chạy của hình nền

(tranSpeed), giới hạn vòng lặp (loopRange).

+Hàm Update(): khi hình nền chạy đến điểm dừng loop range thì hàm này sẽ tạo vòng lặp đặt hình nền game về lại vị trí cũ.

Hình 4.8 Class Gamecontroller

Ý nghĩa: đây là đoạn script điều khiển hoạt động của game (nó có khả năng quyết định khi nào game chạy và

kết thúc).

+Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo file âm thanh chrisSong (last christmas) và ngưng động thời gian của chương trình, mở giao diện khởi động game (begin panel) cùng với đó là ẩn đi giao diện game over.

chạm cảm ứng thì bắt đầu game bằng cách cho thời gian tiếp tục chạy.

+Hàm startOver(): dùng để cài vào chức năng của nút restart để khởi động lại toàn bộ game (scene1).

+Hàm clickbegin(): tắt giao diện bắt đầu game (begin panel) và phát âm thanh nền (chrisSong).

+Hàm getpoint(): đây là hàm tính điểm khi nhân vật santa va chạm với hộp quà.

+Hàm GameOver(): khi người chơi thua thì hàm này sẽ mở gameover panel và ngưng động thời gian, hiện điểm số người chơi thu được.

+Hàm QuickGame(): cài vào nút trở về menu để chuyển sang màn hình menu

4.4 Menucontroller

Hình 4.9 Class Menucontroller

+Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là ẩn đi các panel sẵn có của menu là info panel (panel thông tin nhà phát triển) và tutorials panel (panel hướng dẫn chơi).

+Hàm clickplay(): dùng để cài vào nút play – Mở màn hình game chính để chơi game.

+Hàm update(): rỗng (đây là hàm để cập nhật các biến đổi theo tốc độ khung hình – Trong trường hợp này là không cần đến).

+Hàm openexitpanel(): dùng để hiện panel exit game (bản thông báo thoát game) khi nhấn nút có biểu tượng exit (mũi tên đỏ).

+Hàm clickexit(): cài vào chức năng của nút yes (trong bản thông báo thoát game) để thoát chương trình.

+Hàm infoClick(): cài vào chức năng nút info (bên góc phải trên cùng của menu) để mở panel info.

+Hàm canelBtn(): cài vào chức năng của nút no (trong bản thông báo thoát game) để hủy thoát game (tắt bản thông báo thoát game).

+Hàm backclick(): cài vào nút back (trong bản info) để tắt panel info.

Hình 4.10 Class Snowfalling

Ý nghĩa: đây là đoạn script của hiệu ứng tuyết rơi để điều khiển vòng lặp của đối tượng này.

+Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo các vị trí ban đầu x,y,z và đặt tốc độ rơi của đối tượng tuyết.

+Hàm Update(): di chuyển vị trí (x,y) của tuyết để tạo hiệu ứng rơi

+Hàm OnTriggerEnter2D(): đây là một trong những hàm đặc biệt của unity để xử lý va chạm xuyên vật thể để kích hoạt một hành động nào đó – Trong trường hợp này dùng để tạo vòng lặp (đặt lại vị trí ban đầu) cho đối tượng tuyết.

Hình 4.11 Class Treeiceloop

Ý nghĩa: đây là đoạn script tương tự như Snowfalling chỉ khác ở điểm là nó chỉ di chuyển trục x chứ không phải cả x và y.

5. MÔ HÌNH CHI TIẾT TỪNG MÀN HÌNH

DANH SÁCH BIẾN CỐ VÀ XỬ LÝ TRÊN TỪNG MÀN HÌNH Màn hình giao diện bắt đầu của game (Scene Menu):

Hình 5.1 - Màn hình bắt đầu của game

STT Biến cố Ý nghĩa Xử lý tương ứng Mã số

xử lý

1 Play Bắt đầu game Mở Scene Main 1

2 Thoát Thoát phần mềm Mở UI panel exit 2

3 Info Thông tin game Mở UI panel infor 3

4 Turtorials Cách chơi và luật Mở UI panel Turtorials 4 Bảng 5.1 - Biến cố trên màn hình

STT Mã số Loại Ý nghĩa Ghi chú

1 1 Button Mở Scene Main

2 2 Button Thoát game

3 3 Button Thông tin game

4 4 Button Hướng dẫn chơi

Bảng 5.2 - Xử lý biến cố Màn hình main

STT Biến cố Ý nghĩa Xử lý tương ứng Mã số

2 Click, tap Điều khiển Santa Flypower = +38 6 3 Va chạm quà Thu thập quà Score = +1 7 4 Va chạm vật

cản

Kết thúc game Xuất hiện Panel game over

8

Hình 5.2 Màn hình chơi game

Bảng 5.3 Biến cố trên Scene Main

ST T

Mã số Loại Ý nghĩa Ghi chú

1 5 Click, tap Bắt đầu run time Runtime = 1 2 6 Click, tap Điều khiển Santa bay lên Flypower=+38

3 7 Textbox Điểm số Score=+1

4 8 Panel Kết thúc game gameoverPane

l

Bảng 5.4 - Xử lý biến cố Màn hình game over:

Hình 5.3-Màn hình game over.

STT Biến cố Ý nghĩa Xử lý tương ứng Mã số

xử lý

1 Restart Bắt đầu lại game Mở Scene Main 9 2 Thoát Thoát ra màn hình lúc

đầu

Mở Scene Menu 10

3 Score Số điểm người chơi nhận được

Thông qua số quà nhặt được

11

Bảng 5.5 - Biến cố trên màn hình over ST

T

Mã số Loại Ý nghĩa Ghi chú

1 9 Button Tạo mới game, mở Scene main 2 10 Button Trả về màn hình đầu tiên

3 11 Textbox Trả về số hộp quà

Bảng 5.6 - Xử lý biến cố Sơ đồ use case

KẾT LUẬN

Sau nhiều ngày suy nghĩ kĩ để chọn đề tài tốt, cuối cùng chúng em cũng đã chọn được đề tài làm game 2d trên Unity Game Chirstmas Eve.

Bước đầu tìm hiểu về Unity và Game Engine chúng em gặp rất nhiều khó khăn trong việc tìm tài liệu và xây dựng ý tưởng game vì tài liệu về unity đa phân bằng tiếng anh, nhưng sau khoảng 1 tháng

cho mình được 1 game gần hoàn chỉnh để phục vụ cho đề tài báo cáo. Trong thời gian làm đề tài chúng em cũng có một số những vấn đề đạt được và chưa đạt được.

Đạt Được

- Hiểu được cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng trên Unity

- Nâng cao kiến thức lập trình và tiếng anh chuyên ngành thông qua những tài liệu về Unity bằng tiếng Anh.

- Xây dựng được các nhân vật trong game bằng phần mềm hỗ trợ photoshop.

- Tổ chức load các màn tương ứng thông qua các button.

- Xây dựng các chức năng như điểm, máu, màn chơi thông qua ngôn ngữ lập trình C# trên MonoDevelop.

- Tạo âm thanh cho cho trò chơi và 1 số chức năng khác.

Ngoài những thứ đặt được thì em còn rất nhiều những vấn đề chưa đạt được.

Chưa Đạt Được

- Do kiến thức của chúng em về Unity còn hạn hẹp nên các chức năng trong game còn chưa được tốt.

- Các Script trong Unity tổ chức chưa thực sự rõ ràng.

- Chưa có sự phong phú trong màn chơi và nhân vật.

Thuận Lợi

- Vận dụng được các kiến thức đã học trong.

- Được sự giúp đỡ từ cô và các bạn.

- Tài liệu rất nhiều trên Internet.

Khó Khăn

- Môi trường lập trình mới.

- Cần thời gian để thích nghi và tìm hiểu.

Kinh Nghiệm Rút Ra

- Quản lý và sắp xếp thời gian một cách hợp lý.

- Cải thiện làm việc nhóm.

- Tập trung trong công việc.

Hướng Phát Triển - Tối ưu hóa.

- Tăng thêm màn chơi.

- Cung cấp thêm công cụ.

- Phát triển ứng dụng trên nền hệ điều hành IOS.

TÀI LIỆU THAM KHẢO Ý tưởng khởi nguồn từ flappy bird:

[1] http://vneconomy.vn/cuoc-song-so/10-ly-do-flappy-bird-gay-sot- 20140207112014692.htm [2] https://news.zing.vn/nhung-game-di-dong-tung-gay-sot-toan-cau- post390933.html Tìm hiểu về Unity [3]https://vi.wikipedia.org/wiki/Unity_(ph%E1%BA%A7n_m%E1%BB %81m_l%C3%A0m_game) [4] https://unity.com/learn/educators [5] https://xemtailieu.com/tai-lieu/bai-bao-cao-do-an-co-so-nganh- lap-trinh-game-ban-sung-unity-3d-1854023.html [6] https://viblo.asia/p/gioi-thieu-ve-unity-engine-game-engine-pho- bien-nhat-hien-nay-V3m5WBj8lO7 [7] https://techblog.vn/gioi-thieu-ve-unity-engine-game-engine-pho- bien-nhat-hien-nay

Các game tham khảo

[8] Flappy Bird

Một phần của tài liệu Báo cáo Công nghệ phần mềm, làm quen với Unity và làm game 2D đơn giản (Trang 33)

Tải bản đầy đủ (DOCX)

(48 trang)
w