Cocos2D-X Là Gì

  -  
Giới Thiệu

Thực tế thì mình cũng chả đề xuất là một lập trình sẵn viên chuyên game tốt gì cả, chỉ cần lần này bản thân tất cả được nhận làm cho một project game thời gian ngắn từ anh sếp cùng được recomkết thúc sử dụng Cocos Creator. Sau một thời hạn không quá lâu năm xúc tiếp với nó thì bản thân thấy nó cũng rất xuất xắc yêu cầu ý muốn share cho rất nhiều tín đồ về engine này

Theo nlỗi mình đã có được biết thì trước đó lúc chưa xuất hiện Cocos Creator thì đông đảo người vẫn áp dụng Cocos2d-x code bởi C++. Nhược điểm của thằng này là không tồn tại bối cảnh bạn xây dựng yêu cầu tự tưởng tượng code với rồi chạy lên bắt đầu thấy được hiệu quả. Để hạn chế và khắc phục vấn đề đó, làm tăng công suất cùng đuổi kịp được với Unity, thì Cocos Creator đã được Ra đời. Bây Giờ thì thằng này chỉ cung ứng trên MAC và Window yêu cầu bạn bè như thế nào sử dụng Ubuntu thì chắc đã khá bi thảm.

Bạn đang xem: Cocos2d-x là gì

Vậy Cocos2d-x là gì thì Cocos2d-x là 1 trong Engine cung cấp thiết kế Game nhiều nền tảng : Mobile ( IOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5,.. đại nhiều loại là đủ cả. Theo wikipedia thì tác giả của Cocos2d-x là một trong những bạn tàu khựa mang tên là Zhe Wang.

*

*


2012, at Zynga. With Rolanvị Abarca and Zhe Wang discussing Cocos2d-x’s and cocos2d-iphone’s roadmaps

Hiện tại thì nó vẫn được đa số chúng ta nhẵn giếng cách tân và phát triển tương đối là dũng mạnh với ko ngừng hoàn thành để thay đổi Unity phiên bản free, cơ mà chặng đường chắc hẳn vẫn còn đấy tương đối nhiều năm.

Thực Hành Tạo Và Deploy Game

Mình thì ko mê thích lâu năm loại mà lại bản thân thấy các tốt nhất để học một cái gì là cđọng cho vào làm cho luôn nó bắt đầu nkhô hanh vỡ lẽ ra được, chđọng cđọng kim chỉ nan suông thì siêu nặng nề tưởng tượng.

*

Đây là trang chủ để cài đặt cocos creator : https://www.cocos.com/en/creator

Sau lúc mua về cùng cài đặt (cài điều này khá là thọ nha) thì giao diện chủ yếu của creator đã như vậy này

*

Giờ bọn họ vẫn đi luôn luôn vào có tác dụng game thứ nhất nlỗi vào docs của cocos khuyên bảo. Dưới đây là nguồn assets có tác dụng game cùng game vẫn hoàn thành

Assets

Sau lúc thiết lập Assets thuở đầu về bọn họ đã import nó vào creator, siêu dễ dàng và đơn giản chỉ việc kéo thả vào thôi

*

Phần Assets vẫn là vị trí chứ các nguồn tài liệu để ta dụng nhằm tạo nên hình

*

Scene

Sau lúc vẫn gồm Assets ta sẽ khởi tạo các Scene. Scene là 1 bạn dạng nhân tình 2 chiều với có thể msống cơ chế 3 chiều, giúp ta kéo tả, biến đổi tạo thành UI. Mỗi Scene sẽ là một màn hình vẻ bên ngoài như thể trên web họ sẽ sở hữu được trang home, trang detail, trang about thì scene đó là các view kia. Ta hoàn toàn có thể sinh sản các scene với đổi khác giữa bọn chúng vào game.

*

Thêm không giống thực thể vào Scene

*

Tại đây ta có thể tùy kéo kéo chỉnh, đổi khác vị trí của các thực thể làm sao để cho bản thân thấy ổn định độc nhất. Có những chính sách kéo thả

Di chuyển theo chiều X - Y thứ nhất chọn mặt góc trái tiếp đến có thể dịch rời địa chỉ của thực thể

*

Txuất xắc đổi góc xoay của thực thể. Chọn và ra scene biến đổi góc quay

*

Rsize kích cỡ thực thể chọn
*
với thay đổi kích thước

*

Ở trên scene ta chỉ cần nỗ lực thế thôi là có thể kéo thả, chuyển đổi form size với dic gửi khắp bạn dạng đồ

Properties

Thì không tính việc kéo thả ngơi nghỉ scene họ cũng có thể thay đổi địa chỉ, biến hóa độ nhìn trong suốt, thêm các script, thêm animation và không hề ít thức không giống tại đoạn này

*

Position chính là địa chỉ của thực thể đó bên trên scene tính theo trục tọa đọ X-YRotaion là góc nghiêngScale là hình dạng phóng khổng lồ theo 2 chiều x hoặc yAnchor là nhằm biến hóa địa chỉ của thực thể đối với nơi bắt đầu tọa độ của chính nóSize đó là thay đổi size width-Height của thực thểmàu sắc là màu sắc của thực thểOpađô thị độ nhìn trong suốt...

Node Tree

Đây Lúc khoanh vùng nhằm ta xác định được đâu là thành phần phụ thân con của nhau hoặc thằng nào nghỉ ngơi lớp trên, thằng như thế nào sinh hoạt lớp dưới.

*

*

thằng nào càng làm việc bên dưới có nghĩa là nó đang bên trên lớp tối đa. Kiểu như sinh hoạt trong css bao gồm trực thuộc tính z-index Lúc ta thực hiện position vậy. Càng ngơi nghỉ dưới thì z-index càng cao và hoàn toàn có thể bịt lớp thằng kia. Giống nhỏng dòng ground đã bít đi cả thằng PurpleMonster.

Timeline

phần này dùng để tạo ra các animation đối chọi sút chị buộc phải biến đổi góc nghiêng tuyệt biến hóa vị trí của thực thể. Đây là ví dụ về 1 animation nhảy

*

*

Tạo Hình Và Bắt Sự Kiện Cho Nhân Vật

Bây tiếng sau khi sẽ gọi hết những phần cùng tác dụng của chính nó chúng ta đã lấn sân vào có tác dụng game đầu tiên nha

Thứ nhất chúng ta cần kéo các nhân tố của game vào để có một chiếc UI tổng quát

*

Sau khi thực hiện hết những kỹ năng và kiến thức sinh hoạt bên trên nhằm kéo thả ra một UI nlỗi vào hình, thì hiện giờ các bước bắt buộc làm cho là add thêm những script nhằm bắt sự kiện trong game. Tạo một folder scripts --> và new một file Player.js.

Tạo folder

*

Tạo file js

*

Cliông xã double vào tệp tin Player ta sẽ thấy một form js gồm sẵn

// Player.js cc.Class( extends: cc.Component, properties: // foo: // // ATTRIBUTES: // default: null, // The mặc định value will be used only when the component attaching // // to lớn a node for the first time // type: cc.SpriteFrame, // optional, default is typeof mặc định // serializable: true, // optional, mặc định is true // , // bar: // get () // return this._bar; // , // set (value) // this._bar = value; // // , , // LIFE-CYCLE CALLBACKS: // onLoad () , start () , // update (dt) , );Giờ thêm những properties // Player.js //... properties: // main character"s jump height jumpHeight: 0, // main character"s jump duration jumpDuration: 0, // maximal movement tốc độ maxMoveSpeed: 0, // acceleration accel: 0, , //...Tiếp đến ta đang thêm js này đến thằng thực thể PurpleMonster để lát nữa đang xử lý sự khiếu nại trong tệp tin js này. Quay về màn hình hiển thị vào phần Node Tree nãy tôi đã nói, chọn thực thể PurpleMonster tiếp đến xem xét sang trọng phần properties của nó. Ta vẫn xuống button Add Component lựa chọn Custom component và chọn Player

*

Sau lúc sẽ add được js vào vào nó đã hiện ra các trực thuộc tính ta vừa tư tưởng trong file Player ngơi nghỉ bên trên với ta đã điền các thông số vào đây.

*

Bây tiếng ta đã viết một chiếc hàm nhảy đầm cho thằng này

// Player.js properties: //... , setJumpAction: function () // jump up var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)).easing(cc.easeCubicActionOut()); // jump down var jumpDown = cc.moveBy(this.jumpDuration, cc.v2(0, -this.jumpHeight)).easing(cc.easeCubicActionIn()); // repeat return cc.repeatForever(cc.sequence(jumpUp, jumpDown)); ,Sau lúc sẽ có hàm nhảy đầm rồi ta đang set hàm kia vào onLoad(). Điều này có chức năng là nó sẽ chạy ngay sau khi thực thể lại được load ra// Player.js onLoad: function () // initialize jump action this.jumpkích hoạt = this.setJumpAction(); this.node.runAction(this.jumpAction); ,Ok demo coi chạy không nha. Chọn vào nút ít

*
nghỉ ngơi trên thuộc thân màn hình
*

cc.repeatForever sẽ giúp đỡ hành động xẩy ra tái diễn trường thọ. cc.sequence triển khai hành động tuần trường đoản cú. jumpUp, jumpDown là nhảy lên cùng nhảy đầm xuống --> cđọng như vậy cc.repeatForever(cc.sequence(jumpUp, jumpDown)) đã làm PurpleMonster nhảy đầm lâu dài và hàm được để tại onLoad() phải hàm sẽ được chạy tức thì sau thời điểm Lúc thực thể được load.

Xem thêm: Postgraduate Student Là Gì ? Postgraduate Khác Gì Với Master?

Đã tạo nên hàm dancing, tiếp nối chúng ta sẽ tạo hành vi di chuyển lịch sự trái, sang bắt buộc cho nhân vật dụng.

// Player.js setJumpAction: function () //... , onKeyDown (event) // set a flag when key pressed switch(sự kiện.keyCode) case cc.macro.KEY.a: this.accLeft = true; break; case cc.macro.KEY.d: this.accRight = true; break; , onKeyUp (event) // unset a flag when key released switch(sự kiện.keyCode) case cc.macro.KEY.a: this.accLeft = false; break; case cc.macro.KEY.d: this.accRight = false; break; ,onKeyDown là lúc ta nhấm phím, cònonKeyUp là lúc ta nhả phím ra. Sẽ có một switch ngơi nghỉ vào nhằm kiểm tra xem ta bnóng phím như thế nào nghỉ ngơi keydown cùng nhả phím như thế nào làm việc keyup. Sau đó mix hướng mang lại nó ở keydown mang đến phía đấy thành true và khi nhả phím thì set lại thành false chỉ đơn giản dễ dàng vậy thôi.

Nhưng bận mong mỏi game nhận thấy ác hiệu lệnh đó của chính bản thân mình thì bạn phải khởi tạo thành keyboard bằng phương pháp như sau

// Player.js onLoad: function () // Initialize the jump action this.jumpAction = this.setJumpAction(); this.node.runAction(this.jumpAction); // Acceleration direction switch this.accLeft = false; this.accRight = false; // The main character"s current horizontal velothành phố this.xSpeed = 0; // Initialize the keyboard đầu vào listening cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UPhường, this.onKeyUp, this); , onDestroy () // Cancel keyboard input monitoring cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this); ,Khởi sản xuất lắng tai keyboard Khi load và diệt lắng nghe lúc thực thể kia bị phá hủy

Cuối cùng là phần update địa chỉ của nhân vật lúc ta bấm nút

// Player.js update: function (dt) // update tốc độ of each frame according to lớn the current acceleration direction if (this.accLeft) this.xSpeed -= this.accel * dt; else if (this.accRight) this.xSpeed += this.accel * dt; // restrict the movement tốc độ of the main character to lớn the maximum movement tốc độ if ( Math.abs(this.xSpeed) > this.maxMoveSpeed ) // if tốc độ reach limit, use max tốc độ with current direction this.xSpeed = this.maxMoveSpeed * this.xSpeed / Math.abs(this.xSpeed); // update the position of the main character according khổng lồ the current speed this.node.x += this.xSpeed * dt; ,Mình đã thử thử nghiệm thì thấy thằng update() này cđọng 0,01 giây nó vẫn Gọi một lần

update(dt) console.log("Run in function update() time : ", dt);

*
Tức là nó vẫn Gọi hàm gần như liên tục

if (this.accLeft) this.xSpeed -= this.accel * dt; else if (this.accRight) this.xSpeed += this.accel * dt; Phần này đang soát sổ xem người dùng sẽ bắt nhân đồ dùng chạy về phía như thế nào. Sau này sẽ đổi khác địa chỉ nhân thiết bị theo hướng đó bằng cách trừ tốt công tọa đọ X với một vận tốc tăng theo thời hạn. Nhưng để phòng ngôi trường thích hợp tăng vận tốc vượt nkhô nóng thì 1 phần số lượng giới hạn tốc độ được tùy chỉnh sinh hoạt tức thì phía dưới.

if ( Math.abs(this.xSpeed) > this.maxMoveSpeed ) // if speed reach limit, use max tốc độ with current direction this.xSpeed = this.maxMoveSpeed * this.xSpeed / Math.abs(this.xSpeed); Phần cuối của hàm l à set địa điểm mang lại nhân vật

this.node.x += this.xSpeed * dt;

Tạo Hình Và Bắt Sự Kiện Cho Ngôi Sao

Sau khi đang thực hiện ngừng mang lại nhân đồ gia dụng tiếp nối họ vẫn triển khai mang lại ngôi sao 5 cánh. Do ngôi sao sáng sẽ lộ diện với mất đi Khi nhân vật dụng tiếp xúc với nó. Tức là nó sẽ tiến hành tạo ra với tiêu diệt đi liên lục do thế tại đây ta đã hễ đụng mang lại một có mang Prefab. Prefab là phần đông node phần đa thực thể ta sẽ tạo nên nhưng lại đề nghị sử dụng đi sử dụng lại nhiều lần, nó giống như tư tưởng component sinh hoạt trong các framework React tuyệt Vue vậy.

Thì bây giờ ta sẽ khởi tạo ra các Prefab như vậy bằng phương pháp kéo ngôi sao sáng vào Scene cùng tạo nên một tệp tin script rồi add vào mang lại nó.

*

// Star.js properties: // When the distance between the star & main character is less than this value, collection of the point will be completed pickRadius: 0, ,

*

Rồi sau khoản thời gian đã add script cho nó ta vươn lên là nó thành 1 một Prefab bằng cách. Kéo nó từ bỏ Scene xuống ô Assets vậy là xong

*

*

Tiếp cho là chế tạo ra sự kiện để mix vị trí mang lại ngôi sao 5 cánh Lúc nó mở ra. Tạo một tệp tin trò chơi.js

// trò chơi.js properties: // this property quotes the PreFab resource of stars starPrefab: default: null, type: cc.Prefab , // the random scale of disappearing time for stars maxStarDuration: 0, minStarDuration: 0, // ground node for confirming the height of the generated star"s position ground: default: null, type: cc.Node , // player node for obtaining the jump height of the main character and controlling the movement switch of the main character player: default: null, type: cc.Node ,starPrefab ta để type là Prefab. hiện giờ add script này mang lại thằng Canvas kéo lên phần Node Tree --> chọn Canvas --> rồi Properties chọn Add Component cùng lựa chọn tệp tin script Game

Rồi giờ đồng hồ mang đến phần Generate sao bằng cách random vị trí

// trò chơi.js onLoad: function () // obtain the anchor point of ground level on the y axis this.groundY = this.ground.y + this.ground.height/2; // this.ground.top may also work // generate a new star this.spawnNewStar(); , spawnNewStar: function() // generate a new node in the scene with a preset template var newStar = cc.instantiate(this.starPrefab); // put the newly added node under the Canvas node this.node.addChild(newStar); // mix up a random position for the star newStar.setPosition(this.getNewStarPosition()); , getNewStarPosition: function () var randX = 0; // According to lớn the position of the ground màn chơi và the main character"s jump height, randomly obtain an anchor point of the star on the y axis var randY = this.groundY + Math.random() * this.player.getComponent("Player").jumpHeight + 50; // according to lớn the width of the screen, randomly obtain an anchor point of star on the x axis var maxX = this.node.width/2; randX = (Math.random() - 0.5) * 2 * maxX; // return to lớn the anchor point of the star return cc.v2(randX, randY); ,Test nào

*

Rồi giờ đính thêm sao vào với toàn diện game

// trò chơi.js spawnNewStar: function() // ... // Staging a reference of Game object on a star component newStar.getComponent("Star").game = this; ,// Star.js getPlayerDistance: function () // judge the distance according khổng lồ the position of the player node var playerPos = this.game.player.getPosition(); // calculate the distance between two nodes according lớn their positions var dist = this.node.position.sub(playerPos).mag(); return dist; , onPicked: function() // When the stars are being collected, invoke the interface in the Game script to lớn generate a new star this.game.spawnNewStar(); // then destroy the current star"s node this.node.destroy(); , update: function (dt) // judge if the distance between the star and main character is less than the collecting distance for each frame if (this.getPlayerDistance() this.pickRadius) // invoke collecting behavior this.onPicked(); return; ,

Add score

Điểm đang bắt đầu từ bỏ 0 khi trò đùa bắt đầu. 1 điều sẽ được thêm khi 1 sao được tích lũy. Để hiển thị điểm số, trước tiên bọn họ nên tạo nên một node Label. Chọn Canvas vào Node Tree , bấm chuột phải cùng lựa chọn Create -> Create Renderer Nodes -> Node With Label. Một node label bắt đầu sẽ tiến hành sinh sản bên dưới node Canvas. Tiếp theo, chúng tôi đã sử dụng các bước sau để tùy chỉnh node label này:

Tgiỏi thay tên node thành scoreChọn node score với thiết lập position thành (0, 180)Chỉnh sửa nằm trong tính String thành Score: 0Đặt Font Size là 50Kéo assets/mikado_outline_shadow(chú ý! Biểu tượng là
*
) vào trực thuộc tính Font của Label

*

Thêm xúc tích kiếm được điểm vào script Game

// trò chơi.js properties: // ... // reference of score label scoreDisplay: default: null, type: cc.Label ,Tiếp cho là khởi chế tạo điểm trong onLoad()

// Game.js onLoad: function () // ... // initialize scoring this.score = 0; ,Sau đó thêm một cách tiến hành new được đặt tên gainScore :

// Game.js gainScore: function () this.score += 1; // update the words of the scoreDisplay Label this.scoreDisplay.string = "Score: " + this.score; ,

Invoke ăn điểm của trò chơi trong Star

// Star.js onPicked: function() // when the stars are being collected, invoke the interface in the trò chơi script to lớn generate a new star this.game.spawnNewStar(); // invoke the scoring method of the Game script this.game.gainScore(); // then destroy the current star"s node this.node.destroy(); ,

Kéo các nhân tố vào logic game

Chọn Canvas nhìn sang Properties với chú ý phần trò chơi sẽ có được những trường nhu sau

*

Đây chính là các properties ta đang khái niệm vào tệp tin Game.js. Tiếp theo ta buộc phải kéo các yếu tố quan trọng vào chỗ này.

*

Sau Lúc đã nâng những thành phần vào properties thì ta yêu cầu xóa node star bên trên Node Tree đi. Vì sau đây ta vẫn generate những star bởi Prefab phải thằng node này sẽ không còn quan trọng nữa. Nếu không xóa đi nó có khả năng sẽ bị hiện tượng lạ thời gian làm sao cũng có thể có 2 ngôi sao sáng cùng một ngôi sao ko bao giờ biến mất như thế này. À nhân tiện thể chạy thử xem hiệu quả luôn nhá

*

Xóa node star đi

*

Kết trái đã ok

trò chơi Over

Ta đang tùy chỉnh thời gian mở ra của ngôi sao sáng để làm sao tự khi ngôi sao được xuất hiện mà 60s sau chẳng hạn, nhưng mà nó không được thu thập thì đã game over. Vây thứ nhất buộc phải thêm thay đổi đếm thời gian

// Game.js onLoad: function () // ... // initialize timer this.timer = 0; this.starDuration = 0; // generate a new star this.spawnNewStar(); // initialize scoring this.score = 0; ,Sau kia thêm lô ghích đặt lại bộ định thời vào thời điểm cuối spawnNewStar thủ tục, trong những số đó this.minStarDuration với this.maxStarDuration là những nằm trong tính của trò chơi được knhì báo ngơi nghỉ đầu. Chúng được áp dụng để phương pháp Phần Trăm tự dưng của thời gian sao:

// Game.js spawnNewStar: function() // ... // rephối timer, randomly choose a value according the scale of star duration this.starDuration = this.minStarDuration + Math.random() * (this.maxStarDuration - this.minStarDuration); this.timer = 0; ,Thêm lô ghích update cỗ đếm thời hạn và phán đoán thù quá quá thời lượng cho cách tiến hành update:

// Game.js update: function (dt) // update timer for each frame, when a new star is not generated after exceeding duration // invoke the lô ghích of game failure if (this.timer > this.starDuration) this.gameOver(); return; this.timer += dt; ,Cuối cùng, thêm cách thức gameOver

// trò chơi.js gameOver: function () this.player.stopAllActions(); //stop the jumping action of the player node cc.director.loadScene("game"); Để người đùa hiểu được ngồi sao sắp đến biến mất ta cần có mang lại nó một cảm giác bằng cách giảm opađô thị của chính nó xuống làm nó mờ dần đi.

// Star.js update: function() // ... // update the transparency of the star according khổng lồ the timer in the trò chơi script var opacityRatio = 1 - this.game.timer/this.game.starDuration; var minOpacity = 50; this.node.opacity = minOpathành phố + Math.floor(opacityRatio * (255 - minOpacity));

Thêm hiệu ứng âm tkhô cứng cho Player

trò chơi nhưng mà im thin thít thì cực kỳ ráo mát, bây giờ chúng ta đang thêm cho nó cảm giác âm thanh khô lúc nó triển khai những hành động.

Thứ nhất, thêm hiệu ứng âm thanh khô khiêu vũ. Mở Player.js cùng thêm ở trong tính tđắm đuối jumpAudio

// Player.js properties: // ... // jumping sound effect resource jumpAudio: default: null, type: cc.AudioClip , ,Sau kia viết lại thủ tục setJumpkích hoạt cyếu cuộc hotline lại để phân phát cảm giác âm thanh khô và phát âm thanh hao bằng phương pháp thêm cách tiến hành playJumpSound

// Player.js setJumpAction: function () // jump up var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)).easing(cc.easeCubicActionOut()); // jump down var jumpDown = cc.moveBy(this.jumpDuration, cc.v2(0, -this.jumpHeight)).easing(cc.easeCubicActionIn()); // add a callbachồng function to invoke other defined methods after the action is finished var callbaông chồng = cc.callFunc(this.playJumpSound, this); // repeat unceasingly, & invoke callbaông xã to lớn play sound after landing each time return cc.repeatForever(cc.sequence(jumpUp, jumpDown, callback)); , playJumpSound: function () // invoke sound engine lớn play the sound cc.audioEngine.playEffect(this.jumpAudio, false); ,

Hiệu ứng âm tkhô cứng khi ghi điểm

Thêm nằm trong tính âm tkhô giòn kiếm được điểm vào Game.js

// trò chơi.js properties: // ... // scoring sound effect resource scoreAudio: default: null, type: cc.Audiovideo ,Sau đó cnhát vào thủ tục gainScore

// Game.js gainScore: function () this.score += 1; // update the words of the scoreDisplay Label this.scoreDisplay.string = "Score: " + this.score.toString(); // play the scoring sound effect cc.audioEngine.playEffect(this.scoreAudio, false); ,Tiếp đến làm giống như như kéo cá thành phần, tiếng ta đã kéo các tệp tin audio vào ô trực thuộc tính khớp ứng.

*

*

*

Đã hoàn chỉnh giờ đồng hồ họ test trả nghiệm thôi

Build với Deploy

Build

Phần Build của nó khôn cùng dễ dàng. Chọn Project -> lựa chọn Build

*

Tiếp đén chọn Build và ngóng tkhô nóng Build...

Xem thêm: Tải Cờ Tỷ Phú Tiếng Việt - Cờ Tỷ Phú Việt Nam Cho Android

hiện nay conpleted là được

*

*

Vậy là sẽ build xong giờ hoàn toàn có thể kiểm tra tác dụng build bằng phương pháp lựa chọn Play

Deploy

Để dễ dàng và đơn giản hóa vấn đề deploy họ đã thực hiện surge: https://surge.sh/

*

insttall rất 1-1 giản

npm install --global surgesau khi vẫn cài đặt ta đang vào thỏng mục mà vừa nãy ta build ra và msinh sống terminal

*

Chạy lệnh surge

*

Sau kia tùy chỉnh thiết lập thương hiệu domain là xong

*

Và đây là hiệu quả :http://gamestar.surge.sh/

Tổng kết

Đến trên đây chắc rằng phần đa tín đồ đã biết cách làm sao để làm hồ hết game đơn giản và dễ dàng với Cocos Creator rồi. Còn nếu muốn chế tạo ra gần như game phức tạp hơn vậy thì cần được phát âm docs và tham khảo trường đoản cú gần như thành phầm đi trước tương đối nhiều nữa. Cảm ơn chúng ta sẽ quyên tâm đến bàì viết, siêu vui cùng hứa hẹn chạm chán lại làm việc đầy đủ bài viết tiếp sau.

Nếu chúng ta gồm hứng thụ cùng với game socket hoàn toàn có thể xem thêm game cơ mà mình và các bạn trong team đã làm cho. Nó tất cả tích hợp thực hiện cả websocket để đùa và blockchain nhằm lưu giữ công dụng buộc phải, mặc dù tương đối sơ dùng tuy nhiên chắc chắn là để giúp được ai kia ví như yêu cầu. Và nhất là thằng này chưa hỗ chợ SocketIO nếu còn muốn tích vừa lòng sẽ khá trở ngại theo nhỏng docs của chính nó có nói vậy, đề xuất mình đành ngùi ngùi thực hiện Websocket. Đây là liên kết game và cần phải có ví metamask new đùa được nha:https://github.com/ngovannghia1997kma/HeadBall2