HƯỚNG DẪN GAME MAKER

      20
Ở phần 2, tôi đã hướng dẫn chúng ta cách chế tạo các event và xong xuôi xong một trò đùa né chướng ngại vật bên trên android. Ở phần này, chúng ta hãy thuộc nhau tìm hiểu sâu rộng về những tính năng khác trong GMS2 mà chúng ta có thể sử dụng để nâng cấp trò chơi lên một cột mốc chuyên nghiệp hóa hơn, hãy thuộc mình mày mò nhé.Trong phần 3 sẽ quăng quật qua một vài định nghĩa cơ bản đã được trình bày, hãy chắc chắn là rằng các bạn hiểu phần 2 trước lúc thực hành phần 3 nhé.

Bạn đang xem: Hướng dẫn game maker


*

Thay đổi font chữ hiển thị trong game

Ở phần trước mình được bố trí theo hướng dẫn chúng ta sử dụng hàmdraw_text()để ghi tin tức về điểm số và level lên màn hình, tuy thế nếu chỉ thực hiện hàm này không mà chưa setup font thì cái chữ hiển thị ra GUI sẽ khá xấu và chú ý không bắt mắt, đó cũng là nguyên nhân mình phía dẫn chúng ta cách đổi font chữ vào game.

1. Thêm font text (ẤN ALT+F)

*

Thêm và tùy chỉnh cấu hình font chữ mang lại hợp lý

2.Sử dụng các hàm build-in để thay đổi font chữ hiển thành phố font vừa sở hữu đặt, nghỉ ngơi ví dụ bên dưới mình sẽ sửa đổi lại font cho màn hìnhoGameOvermà chúng ta đã làm tại vị trí 2

//Căn lề: FONTdraw_set_halign(fa_center);//Cài font2draw_set_font(gameFont2);//Chuyển màu đỏdraw_set_color(c_red); //Ghi trò chơi overdraw_text(360,310,"GAME OVER");//Cài font1draw_set_font(gameFont1);//Chuyển màu sắc trắngdraw_set_color(c_white);//Thông báo điểmdraw_text(360,510,"FINAL SCORE "+string(oCircle.myscore));3.Chạy thử

Sau khi chỉnh màu, mẫu mã chữ trong trò chơi và chạy trên PC đã ra kết quả như cố này

Thêm âm nhạc cho trò chơi

Một thành phần đặc biệt quan trọng không kém trong game sẽ là âm thanh, các bạn cũng có thể tự xây đắp âm thanh cho game hoặc tải những âm thanh sẽ được tạo nên sẵn miễn phítại đây(không bản quyền)

1. Thêm sound (ẤN ALT+U)

*

Import âm thanh của các bạn tại vùng khoanh đỏ, tiếp nối hãy để tên đến phù hợp

2.Sau lúc thêm âm thanh, để phát music khi xẩy ra mộteventnào kia (vd: ấn nút, va chạm, nhạc nền, ...) các bạn hãy áp dụng hàmaudio_play_sound(sound>,,). Ở ví dụ bên dưới mình sẽ thêm mẫu lệnh sau vàoCollision EventcủaoCircle(quả bóng)

//Khi quả bóng va chạm tới chướng xấu hổ vật, phân phát âm thanh chấm dứt trò chơiaudio_play_sound(overSound,1,false);3.Tương từ bỏ các chúng ta có thể chèn loại lệnh như bên trên vào bất kỳeventnào các bạn muốn phát ra âm thanh

Làm mang lại chướng ngại đồ trở nên đa dạng và phong phú hơn

Các chúng ta biết rằng, đối tượngoWallcủa bọn họ chỉ áp dụng duy tuyệt nhất 1spritevà dịp nào nó cũng xuất hiện thêm với size như nhau, như vậy thì thiệt là buồn rầu đúng không? Vậy làm chũm nào để objectoWallcủa họ mang nhiều màu sắc trong trò chơi để bạn chơi hào hứng hơn.

1.Import toàn bộ các hình ảnh (sprite) mà bạn có nhu cầu chướng ngại đồ sử dụng, chuyển vận tốc khung hình(Speed)về0.

Xem thêm: " Cây Lau Nhà Lock&Amp;Lock Có Tốt Không, Cây Lau Nhà Lock&Lock Giá Tốt Tháng 7, 2021

*

Ở trên đây mình áp dụng 9 hình hình ảnh (kích thước như nhau) để triển khai những chướng ngại vật vật khác nhau

2.Chỉnh sửa Step sự kiện củaoFunction(nếu bạn băn khoăn oFunction là gì, coi lạiphần 2)

//1000 điểm = 1 level uplevel=floor(oCircle.myscore/1000)+1;//Tính vận tốc di chuyển của oWalllevelSpeed=8+level*1.3;//Khi hết thời hạn đếm ngượcif (delay==0)//Reset thời gian đếm ngược, min=40delay=max(40,100-level*10);//Lấy vị trí ngẫu nhiênvar xx=random_range(0,520); //Tạo oWallwith (instance_create_layer(xx,-200,"Instances",oWall))//Lấy hình ảnh ngẫu nhiên: CHỨC NĂNG MỚIimage_index=random_range(0,8);//Kích thước object tình cờ (tăng theo cấp): CHỨC NĂNG MỚIimage_xscale=random_range(0.3+oFunction.level/10,0.8+oFunction .level/10);image_yscale=image_xscale;//Tốc độ của oWallspeed=oFunction.levelSpeed;//Hướng đi: bên trên -> dướidirection=point_direction(0,0,0,1); else delay--;3.Mỗi lúc khởi đụng trò chơi,GMS2sẽ cung ứng cho họ mộtseed, gần như hàm random ở bước 2 đã dựa vàoseedđể trả về những giá trị ngẫu nhiên. Tuy nhiênseednày sẽ không đổi khác ngay cả khi bạn thoát trò đùa và vào lại, bởi vì vậy rất nhiều giá trị thốt nhiên là hệt nhau ở mọi thời điểm chơi trò chơi này. Nhằm tránh hiện tượng lạ trên, tạiCreate event của oFunction,các các bạn hãy thêm dòngrandomize();

*

randomize()sẽ đảm nhiệm chức năng thay đổiseedmỗi lúc trò chơi bắt đầu.

4.Chạy thử

*

Các trang bị thể được hiện ra với size và bản thiết kế ngẫu nhiên

Nhập tên bạn chơi

Phần này sử dụng hàmget_string_async(,)để tạo cửa sổ cho những người dùng nhập dữ liệutrên cả PC với androidvà trả về một list gần nhưlà bản đồ trong Java.Chính bởi vậy chúng ta sử dụng mộtEventmới: Async - Dialognhằm phân tích danh sách này cùng trả về đúng dữ liệu mà người tiêu dùng nhập vào, các bạn cũng có thể tìm gọi sâu hơntại đây.

1.Tạo thêm 1 nút (object) oChangeName (xem biện pháp tạo nút tại vị trí 1), và cung cấp đó4 eventnhư sau

*

2.Create Event: chế tạo ra 2 biến, một biến lưu trữ tên người chơi, một đổi thay tạm tàng trữ giá trị trả về

//BIẾN GLOBAL (có thể thực hiện trong số đông room): tạo thành giá trị mang định của tên fan chơiglobal.name="Defaut";//Biến tạm thời lưu quý giá của Mapmsg="";3.Draw Event: In tin tức người chơi ra màn hình

//Dòng này nhằm mục đích hiển thị nút "oChangeName"draw_self();//Chỉnh fontdraw_set_halign(fa_center);draw_set_font(gameFont1);//Ghi thông tin người nghịch ra màn hìnhdraw_text(360,y-80,"Welcome, "+string(global.name));4.Left Pressed Event: Hiển thị hành lang cửa số nhập tên lúc ấn con chuột trái

//Lưu quý hiếm nhập liệu vào biến chuyển tạm trướcmsg=get_string_async("Type your name: ","Defaut name");5.Xử lí dữ liệu trả về của bản đồ (Nâng cao cần không buộc phải hiểu rõ)

//Xử lí quý giá ở bước 4var mapId = ds_map_find_value(async_load, "id");if mapId == msg if ds_map_find_value(async_load, "status") if ds_map_find_value(async_load, "result") != "" global.name = ds_map_find_value(async_load, "result");

*

Thành quả test trênAndroid

Bảng điểm

GMS2hỗ trợ một hàm build-in có thể chấp nhận được bạn lưu những giá trị tên tín đồ chơi cùng điểm số vào trong 1 table, cùng nó sẽ auto sắp xếp từ điểm trên cao tới thấp, nhằm hiển thị table

1.Tạo một object để hiển thị table chứa danh sách người chơi đứng top, sau khi tạo kết thúc kéo thảobjectnày vàoroom HighScore

*

Create Eventđể đọc list người chơi mỗi khi truy cậproomHighScore

*

Draw Eventđể vẽ bảng điểm trongroom HighScore

2.Tạo mộtobjectđể lưu danh sách người đùa đứng top vào file,object này sẽ được tạo mỗi khi trò chơi kết thúcnhằm lưu giữ điểm của fan chơi hiện tại

*

Tạoobject SaveHighScore(không cần sử dụng Sprite)

Cuối cùng, trongCollision Eventcủa oCircle lúc va chạm với oWall, hãy thêm dòng chất vấn sau nhằm lưu điểm số của fan chơi

//Lưu điểm lúc trò chơi kết thúcif (!instance_exists(SaveHighScore))instance_create_layer(0,0,"GameOver",SaveHighScore);

Thành quả test trênAndroidkhi ấn vào room HighScore

Tạm Kết

Qua phần này, các bạn đã sở hữu thể đọc thêm được một số thành phần trongGMS2và phụ thuộc vào đó để bổ sung những tính năng không đủ trong game của mình, nếu chúng ta thấy chủ thể hay, hãy phân tách sẽ bài viết và đánh giá 5 sao để mình bao gồm thêm cồn lực hướng dẫn chúng ta nhiều tính năng chuyên nghiệp hóa hơn nữa. Cuối cùng, cảm ơn chúng ta đã đọc bài viết và chúc các bạn thành công.Demo phần 4 (phần cuối): reviews về shader, upgrade trò nghịch để quả bóng hoàn toàn có thể bắn vỡ vật cản vật, hiển thị thanh máu như thế nào, ...

Game đã hoàn chỉnh:AndroidPC

Tài nguyên thực hiện trong game(Đã update phần 1+2+3):Resource

Project (GMS2_ProjectFile):Part 1+2(5000 views phần 4 mình đã update Project cuối cùng_bản đầy đủ tính năng)