Cocos2d-x là gì

Giới Thiệu

Thực tế thì mình cũng chả cần là 1 trong những lập trình sẵn viên siêng game giỏi gì cả, chỉ với lần này bản thân tất cả được nhận có tác dụng một project game thời gian ngắn từ anh sếp và được recomover thực hiện Cocos Creator. Sau một thời hạn không thật nhiều năm tiếp xúc với nó thì bản thân thấy nó cũng tương đối xuất xắc đề xuất ước ao chia sẻ mang lại các người về engine này

Theo nhỏng bản thân có được biết thì trước đây khi chưa có Cocos Creator thì đông đảo tín đồ vẫn sử dụng Cocos2d-x code bằng C++. Nhược điểm của thằng này là không tồn tại hình ảnh fan lập trình sẵn nên tự tưởng tượng code với rồi chạy lên new thấy được hiệu quả. Để hạn chế vấn đề này, làm cho tăng công suất cùng bắt kịp được cùng với Unity, thì Cocos Creator đã có được Thành lập và hoạt động. Bây Giờ thì thằng này chỉ cung ứng trên MAC cùng Window yêu cầu bằng hữu nào sử dụng Ubuntu thì dĩ nhiên vẫn tương đối buồn.

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

Vậy Cocos2d-x là gì thì Cocos2d-x là một Engine hỗ trợ lập trình Game đa nền tảng gốc rễ : thiết bị di động ( IOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5,.. đại các loại là đầy đủ cả. Theo wikipedia thì người sáng tác của Cocos2d-x là 1 trong người china có tên là Zhe Wang.

*

*


2012, at Zynga. With Rolando Abarca & Zhe Wang discussing Cocos2d-x’s và cocos2d-iphone’s roadmaps

Hiện tại thì nó vẫn được hầu như các bạn bóng giếng cải cách và phát triển khá là táo bạo với ko chấm dứt hoàn thành xong nhằm trở nên Unity phiên bạn dạng free, cơ mà chặng đường có thể vẫn tồn tại hơi nhiều năm.

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

Mình thì không say đắm dài dòng mà mình thấy những tốt nhất có thể nhằm học tập một chiếc gì là cứ đọng bỏ vào làm cho luôn nó mới nhanh tan vỡ ra được, chứ đọng cđọng triết lý suông thì vô cùng cạnh tranh tưởng tượng.

*

Đây là Home để mua cocos creator : https://www.cocos.com/en/creator

Sau Khi cài đặt về cùng thiết đặt (sở hữu cái này hơi là thọ nha) thì bối cảnh chính của creator đã như vậy này

*

Giờ họ sẽ đi luôn luôn vào làm game đầu tiên như vào docs của cocos giải đáp. Dưới đây là nguồn assets có tác dụng game cùng game đang hoàn thành

Assets

Sau Lúc cài Assets ban đầu về họ sẽ import nó vào creator, hết sức dễ dàng chỉ cần kéo thả vào thôi

*

Phần Assets đang là vị trí chứ các mối cung cấp dữ liệu để ta dụng nhằm sản xuất hình

*

Scene

Sau Khi đang tất cả Assets ta sẽ khởi tạo những Scene. Scene là 1 bản người thương 2 chiều với hoàn toàn có thể msống chính sách 3D, đỡ đần ta kéo tả, biến hóa tạo ra UI. Mỗi Scene vẫn là một màn hình hiển thị kiểu dáng như thể bên trên website chúng ta sẽ sở hữu trang home page, trang detail, trang about thì scene đó là các view đó. Ta hoàn toàn có thể chế tạo những scene cùng chuyển đổi thân chúng vào game.

*

Thêm khác thực thể vào Scene

*

Tại phía trên ta hoàn toàn có thể tùy kéo kéo chỉnh, biến đổi địa điểm của những thực thể làm sao để cho bản thân thấy ổn định duy nhất. Có những cơ chế kéo thả

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

*

Tgiỏi đổi góc tảo của thực thể. Chọn với ra scene biến đổi góc quay

*

Rform size form size thực thể lựa chọn
*
với thay đổi kích thước

*

Tại bên trên scene ta chỉ cần núm nỗ lực thôi là rất có thể kéo thả, biến hóa kích thước với dic đưa mọi phiên bản đồ

Properties

Thì xung quanh vấn đề kéo thả ngơi nghỉ scene họ cũng rất có thể biến đổi vị trí, biến đổi độ trong suốt, thêm các script, thêm animation cùng tương đối nhiều thức khác ở đoạn này

*

Position chính là vị trí của thực thể kia trên scene tính theo trục tọa đọ X-YRotaion là góc nghiêngScale là vẻ bên ngoài pđợi khổng lồ theo 2D x hoặc yAnchor là nhằm đổi khác vị trí của thực thể đối với nơi bắt đầu tọa độ của bao gồm nóSize đó là thay đổi kích thước width-Height của thực thểColor là màu của thực thểOpathành phố độ nhìn trong suốt...

Node Tree

Đây Khi Khu Vực để ta xác minh được đâu là thành phần cha con của nhau hoặc thằng nào làm việc lớp trên, thằng nào sống lớp dưới.

*

*

thằng làm sao càng sinh sống dưới Tức là nó đã trên lớp cao nhất. Kiểu nlỗi sinh hoạt trong css tất cả trực thuộc tính z-index khi ta thực hiện position vậy. Càng sinh hoạt dưới thì z-index càng cao và hoàn toàn có thể bít lớp thằng tê. Giống nlỗi cái ground vẫn che đi cả thằng PurpleMonster.

Timeline

phần này dùng làm tạo thành những animation solo giảm chị nên chuyển đổi góc nghiêng xuất xắc biến hóa địa chỉ 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 giờ sau khi sẽ phát âm hết những phần với tác dụng của nó họ đã lấn sân vào làm cho game đầu tiên nha

trước hết chúng ta đề nghị kéo những nguyên tố của game vào để sở hữu một cái UI tổng quát

*

Sau Khi thực hiện hết những kiến thức nghỉ ngơi trên nhằm kéo thả ra một UI nhỏng vào hình, thì hiện nay các bước bắt buộc làm cho là add thêm những script để bắt sự kiện trong game. Tạo một thư mục scripts --> và new một tệp tin Player.js.

Tạo folder

*

Tạo file js

*

Cliông chồng double vào tệp tin Player ta đang thấy một form js tất cả sẵn

// Player.js cc.Class( extends: cc.Component, properties: // foo: // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // khổng lồ a node for the first time // type: cc.SpriteFrame, // optional, default is typeof default // 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 speed maxMoveSpeed: 0, // acceleration accel: 0, , //...Tiếp mang lại ta đang thêm js này đến thằng thực thể PurpleMonster để lát nữa sẽ xử trí 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 mình đã nói, lựa chọn thực thể PurpleMonster tiếp đến chú ý thanh lịch phần properties của chính nó. Ta sẽ xuống button Add Component chọn Custom component với lựa chọn Player

*

Sau lúc sẽ add được js vào vào nó đang chỉ ra các nằm trong tính ta vừa khái niệm trong tệp tin Player ngơi nghỉ bên trên với ta đang điền những thông số kỹ thuật vào chỗ này.

*

Bây giờ ta đã viết một chiếc hàm khiêu vũ đến 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 Khi sẽ bao gồm hàm dancing rồi ta sẽ mix hàm kia vào onLoad(). Điều này có tính năng là nó đã chạy tức thì sau khoản thời gian 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 chạy thử coi chạy ko nha. Chọn vào nút

*
ở trên cùng thân màn hình
*

cc.repeatForever sẽ giúp đỡ hành vi xảy ra lặp lại lâu dài. cc.sequence thực hiện hành động tuần từ. jumpUp, jumpDown là nhảy lên với nhảy xuống --> cứ đọng điều này cc.repeatForever(cc.sequence(jumpUp, jumpDown)) vẫn có tác dụng PurpleMonster khiêu vũ tồn tại và hàm được để tại onLoad() đề xuất hàm sẽ được chạy tức thì sau thời điểm khi thực thể được load.

Xem thêm: Tầm Quan Trọng Của Tủy Răng Là Gì ? Vì Sao Phải Điều Trị Tủy Răng?

Đã tạo ra hàm khiêu vũ, tiếp nối chúng ta sẽ tạo nên hành động dịch rời thanh lịch trái, sang trọng phải mang lại 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) // unphối a flag when key released switch(event.keyCode) case cc.macro.KEY.a: this.accLeft = false; break; case cc.macro.KEY.d: this.accRight = false; break; ,onKeyDown là khi ta nhnóng phím, cònonKeyUp là khi ta nhả phím ra. Sẽ có một switch làm việc trong nhằm kiểm soát xem ta bấm phím như thế nào ngơi nghỉ keydown và nhả phím như thế nào nghỉ ngơi keyup. Sau kia set phía mang đến nó sống keydown mang lại phía đấy thành true và khi nhả phím thì mix lại thành false chỉ đơn giản dễ dàng vậy thôi.

Nhưng bận mong muốn game nhận thấy ác tín hiệu lệnh đó của mình thì bạn phải khởi tạo nên bàn phím bằng phương pháp nlỗi 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 velođô thị 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_UP., this.onKeyUp, this); , onDestroy () // Cancel keyboard input đầu vào monitoring cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UPhường, this.onKeyUp, this); ,Khởi tạo ra lắng nghe keyboard Lúc load với bỏ lắng nghe Lúc thực thể đó bị phá hủy

Cuối cùng là phần update địa chỉ của nhân đồ gia dụng Lúc ta bấm nút

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

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

*
Tức là nó đang điện thoại tư vấn 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 sẽ chất vấn coi người dùng đang bắt nhân vật dụng chạy về phía làm sao. Sau này sẽ thay đổi vị trí nhân vật dụng theo hướng kia bằng phương pháp trừ tốt công tọa đọ X với 1 vận tốc tăng theo thời gian. Nhưng để chống trường đúng theo tăng tốc độ quá nkhô cứng thì 1 phần giới hạn tốc độ được tùy chỉnh cấu hình sinh hoạt ngay lập tức bên dưới.

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); Phần cuối của hàm l à set địa chỉ đến 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 triển khai xong xuôi mang lại nhân đồ dùng kế tiếp họ sẽ thực hiện đến ngôi sao sáng. Do ngôi sao sẽ mở ra cùng thiếu tính Khi nhân vật dụng tiếp xúc với nó. Tức là nó sẽ được tạo thành và hủy hoại đi liên lục vì thế ở đây ta sẽ hễ va mang lại một tư tưởng Prefab. Prefab là đều node mọi thực thể ta vẫn tạo ra dẫu vậy yêu cầu áp dụng đi thực hiện lại nhiều lần, nó giống như tư tưởng component ngơi nghỉ trong những framework React tốt Vue vậy.

Thì bây chừ ta sẽ tạo nên ra những Prefab những điều đó bằng cách kéo ngôi sao vào Scene cùng tạo ra một file 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 khi vẫn add script mang lại nó ta biến chuyển 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 đến là tạo thành sự khiếu nại nhằm phối địa chỉ đến ngôi sao lúc nó xuất hiện. Tạo một file Game.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 & controlling the movement switch of the main character player: default: null, type: cc.Node ,starPrefab ta để type là Prefab. hiện nay add script này đến thằng Canvas kéo lên phần Node Tree --> lựa chọn Canvas --> rồi Properties chọn Add Component với lựa chọn file script Game

Rồi tiếng mang đến phần Generate sao bằng phương pháp random vị trí

// Game.js onLoad: function () // obtain the anchor point of ground màn chơi 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 lớn the position of the ground level & 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 khổng lồ 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 lớn the anchor point of the star return cc.v2(randX, randY); ,Test nào

*

Rồi tiếng đính thêm sao vào với tổng thể game

// trò chơi.js spawnNewStar: function() // ... // Staging a reference of trò chơi object on a star component newStar.getComponent("Star").game = this; ,// Star.js getPlayerDistance: function () // judge the distance according lớn the position of the player node var playerPos = this.game.player.getPosition(); // calculate the distance between two nodes according to 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 trò chơi script 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 đã bước đầu trường đoản cú 0 lúc trò chơi ban đầu. 1 điều sẽ tiến hành thêm lúc 1 sao được thu thập. Để hiển thị điểm số, trước tiên bọn họ nên chế tạo ra một node Label. Chọn Canvas vào Node Tree , nhấp chuột yêu cầu và chọn Create -> Create Renderer Nodes -> Node With Label. Một node label new sẽ được chế tạo dưới node Canvas. Tiếp theo, Cửa Hàng chúng tôi đã thực hiện các bước sau để thiết lập node label này:

Ttốt đổi tên node thành scoreChọn node score với tùy chỉnh cấu hình position thành (0, 180)Chỉnh sửa trực thuộc tính String thành Score: 0Đặt Font Size là 50Kéo assets/mikado_outline_shadow(crúc ý! Biểu tượng là
*
) vào nằm trong tính Font của Label

*

Thêm ngắn gọn xúc tích ghi điểm vào script Game

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

// trò chơi.js onLoad: function () // ... // initialize scoring this.score = 0; ,Sau kia thêm một cách tiến hành bắt đầu được đặt tên gainScore :

// trò chơi.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ò đùa trong Star

// Star.js 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(); // invoke the scoring method of the trò chơi script this.game.gainScore(); // then destroy the current star"s node this.node.destroy(); ,

Kéo những thành phần vào lô ghích game

Chọn Canvas chú ý sang Properties với xem xét phần Game sẽ có được những ngôi trường nhu sau

*

Đây chính là những properties ta vẫn định nghĩa vào tệp tin Game.js. Tiếp theo ta phải kéo những yếu tố cần thiết vào đây.

*

Sau lúc đã kéo những nguyên tố vào properties thì ta yêu cầu xóa node star bên trên Node Tree đi. Vì sau này ta đã generate những star bằng Prefab đề nghị thằng node này sẽ không còn cần thiết nữa. Nếu ko xóa đi nó sẽ ảnh hưởng hiện tượng cơ hội như thế nào cũng có thể có 2 ngôi sao cùng một ngôi sao sáng ko bao giờ mất tích như vậy này. À tiện thể kiểm tra coi hiệu quả luôn luôn nhá

*

Xóa node star đi

*

Kết quả đã ok

trò chơi Over

Ta sẽ cấu hình thiết lập thời gian xuất hiện của ngôi sao để làm sao từ Khi ngôi sao được lộ diện nhưng mà 60s sau ví dụ điển hình, nhưng mà nó không được tích lũy thì sẽ game over. Vây đầu tiên nên thêm vươn lên là đếm thời gian

// trò chơi.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 logic đặt lại bộ định thời vào thời điểm cuối spawnNewStar cách làm, trong những số ấy this.minStarDuration với this.maxStarDuration là các ở trong tính của Game được khai báo làm việc đầu. Chúng được áp dụng nhằm biện pháp Phần Trăm tình cờ của thời hạn sao:

// trò chơi.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 vượt quá thời lượng mang đến cách làm update:

// Game.js update: function (dt) // update timer for each frame, when a new star is not generated after exceeding duration // invoke the súc tích of game failure if (this.timer > this.starDuration) this.gameOver(); return; this.timer += dt; ,Cuối cùng, thêm cách tiến hành gameOver

// Game.js gameOver: function () this.player.stopAllActions(); //stop the jumping action of the player node cc.director.loadScene("game"); Để người chơi biết rằng ngồi sao chuẩn bị biến mất ta cần có đến nó một cảm giác bằng phương pháp sút opacity của chính nó xuống làm cho nó mờ dần dần đi.

// Star.js update: function() // ... // update the transparency of the star according lớn the timer in the Game script var opacityRatio = 1 - this.game.timer/this.game.starDuration; var minOpathành phố = 50; this.node.opađô thị = minOpathành phố + Math.floor(opacityRatio * (255 - minOpacity));

Thêm cảm giác âm tkhô hanh cho Player

Game cơ mà im re thì khôn xiết không ẩm mốc, hiện thời bọn họ sẽ thêm cho nó cảm giác âm thanh khô Khi nó thực hiện các hành động.

Trước tiên, thêm cảm giác âm tkhô giòn nhảy. Msinh hoạt Player.js và thêm trực thuộc tính tmê say jumpAudio

// Player.js properties: // ... // jumping sound effect resource jumpAudio: default: null, type: cc.Audiođoạn Clip , ,Sau kia viết lại cách tiến hành setJumpkích hoạt chèn cuộc Gọi lại để phát cảm giác âm tkhô cứng với phát âm tkhô cứng 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, và invoke callback khổng lồ play sound after landing each time return cc.repeatForever(cc.sequence(jumpUp, jumpDown, callback)); , playJumpSound: function () // invoke sound engine to lớn play the sound cc.audioEngine.playEffect(this.jumpAudio, false); ,

Hiệu ứng âm thanh khô lúc ghi điểm

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

// trò chơi.js properties: // ... // scoring sound effect resource scoreAudio: default: null, type: cc.Audiođoạn phim ,Sau đó cyếu vào cách thức gainScore

// trò chơi.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 mang lại làm tựa như như kéo cá nhân tố, giờ đồng hồ ta sẽ kéo các tệp tin audio vào ô ở trong tính khớp ứng.

*

*

*

Đã hoàn chỉnh giờ chúng ta demo trả nghiệm thôi

Build với Deploy

Build

Phần Build của nó vô cùng đơn giản dễ dàng. Chọn Project -> lựa chọn Build

*

Tiếp đén chọn Build với ngóng tkhô giòn Build... hiện conpleted là được

*

*

Vậy là đang build ngừng giờ đồng hồ có thể kiểm tra tác dụng build bằng cách lựa chọn Play

Deploy

Để đơn giản hóa Việc deploy chúng ta sẽ thực hiện surge: https://surge.sh/

*

insttall hết sức đối kháng giản

npm install --global surgesau khi vẫn setup ta đang vào thư mục mà lại vừa nãy ta build ra cùng msinh sống terminal

*

Chạy lệnh surge

*

Sau kia tùy chỉnh cấu hình thương hiệu domain là xong

*

Và đó là kết quả :http://gamestar.surge.sh/

Tổng kết

Đến trên đây có lẽ rằng phần nhiều bạn đã biết cách làm sao để gia công đều game đơn giản với Cocos Creator rồi. Còn nếu còn muốn sinh sản phần nhiều game phức hợp hơn thì cần được gọi docs cùng tìm hiểu thêm từ hồ hết sản phẩm đi trước rất nhiều nữa. Cảm ơn các bạn sẽ quan tâm mang đến bàì viết, rất vui và hẹn gặp lại làm việc phần đông bài viết tiếp theo.

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