1. 程式人生 > >Windows下開發Cocos2d-x lua 客戶端和伺服器端

Windows下開發Cocos2d-x lua 客戶端和伺服器端

做為一個iOS開發者,一直在Mac + XCode環境下開發。初嘗遊戲開發,客戶端是Cocos-2d lua + quick的,服務端是C++的。因為暫時只需要修改iPhone工程,本想著在Mac上開發客戶端,但是沒成想XCode上無法進行lua程式碼的除錯。只能正兒八經的轉戰Windows,用VS除錯客戶端和服務端開發。

Windows下iOS開發環境搭建

  1. Mac下安裝Windows系統。
  2. 安裝Python。
    https://www.python.org/下載安裝python,注意Cocos2d-3.6需要的是Python2.x而不是Python3.x。
  3. 安裝Cocos2d-x。
    下載Cocos2d-x 3.6,雙擊setup開始安裝。中途一些Android的目錄沒有指定,press enter to skip。
  4. 安裝Visual Studio 2013
    地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ 這裡只有2013Express,沒有Professional了。
    開啟.sln提示工程中的專案無法載入時,原因可能是環境變數沒有註冊陳成功。需要執行cocos2dx-quick/setup_win,重啟電腦再重新開啟工程。
  5. 工程編譯失敗
    找不到TREGIST.h。討來該檔案後,將其放到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include就可以編譯成功了。
  6. 執行失敗
libpng warning: iCCP: known incorrect sRGB profile
Quick-Cocos2dx-Community C++ support ready.
cocos2d: fullPathForFilename: No file found at src/plazacenter/main.lua. Possible missing file.
cocos2d: fullPathForFilename: No file found at src/plazacenter/main.lua. Possible missing file.
Get data from
file(src/plazacenter/main.lua) failed, error code is 3
  1. 安裝babelua
    babelua是一款基於VisualStudio的免費lua整合開發環境,可進行lua語言的編譯和除錯。
    (1)訪問babelua的網站或者這個網盤下載適合自己vs版本的vsix檔案https://pan.baidu.com/s/1sjmC169#list/path=%2FBabeLua
    安裝後VS的工具欄中會出現LUA選單。
    (2)安裝VC2005執行庫
    這是安裝Lua For Windows必須的。
    下載地址:https://pan.baidu.com/s/1r_R3nvRk_DCjmmuDm-a6bA
    密碼:2nq9
    (3)下載Lua For Windows
    下載地址同上。
  2. 除錯Lua程式碼
    需要在VS中通過LUA選單建立Lua一個工程
    這裡寫圖片描述
    (1)Lua script folder:lua程式碼路徑,需要指定到xxx/src目錄
    (2)Lua exe path:如果是新建工程需要指定到Lua For Window目錄中的lua.exe;如果是現成的工程需要指定為生成好的exe
    (3)Working path:指定為Lua script folder相同
    (4)Command line:傳給可執行檔案的引數,如果新建工程一般指定要執行的lua檔案;如果是現成工程則傳自定義指定的引數。
    (5)Lua project name:自定義工程名。

問題1:除錯時斷點無效。
Console attempt:
Load script(1): .lua relative (file not exist)
上面(2)中指定的.exe檔案並非當前工程編譯出,exe中沒有相應的符號
問題2:“Error running *: Please select Android SDK”
可能由於Android Studio異常退出導致的問題。選擇File - Setting - Android SDK,Edit按鈕,Next,重新指定一下SDK路徑就可以了。

Windows下Android開發環境搭建

  1. 安裝JDK
    開啟www.oracle.com,搜尋JDK 7u75或者最新版本,並安裝。預設安裝路徑:
C:\Program Files\Java\jdk1.7.0_75\bin
  1. 安裝NDK
    android-ndk-r10d-windows-x86_64.exe 官網被牆了,檔案太大不能直接上傳,請開啟下面的連結進行下載。
    連結:http://pan.baidu.com/s/1bn0H75P 密碼:6cje 安裝完成後會在當前目錄生成android-ndk-r10d資料夾。
    設定環境變數path=當前目錄\android-ndk-r10d
    在cmd中執行ndk-build,如果Android NDK: Could not find application project directory…就說明安裝成功了。
  2. 安裝Android Studio
    開啟tools.android-studio.org,下載Android Studio後開啟會顯示無法訪問Android SDK。
    這裡寫圖片描述
    選Cancel取消。

    開啟後根據提示下載SDK,下載到最後會有一個錯誤提示:

    HAXM installation failed. To install HAXM follow the instructions found at: https://software.intel.com/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-windows

    可能是用來管理硬體加速的,需要調整BIOS,我在mac上執行的Win10,就先不折騰了。
    後來換了臺聯想筆記本在Win10直接安裝SDK,就沒有報錯了。
    這裡寫圖片描述

  3. 開啟工程,該過程中首先會下載Gradle,開啟後報錯。需要繼續下載SDK
    這裡寫圖片描述
  4. 在開啟Android Studio之前,首先要執行指令碼proj.android\build_native.py。目的是將Cocos2d的C/C++程式碼編譯成靜態連結庫。
    執行過程中報錯

    C:\Users\Mara\Desktop\client\cocos2dx-quick\/quick/lib/quick-src/lua_extensions/lpack/lpack.h:24:10: fatal error:
    '/Users/lsm/Development/android-ndk-r10e/sources/android/support/include/iconv.h' file not found
    #include "/Users/lsm/Development/android-ndk-r10e/sources/android/support/include/iconv.h"

    修改C:\Users\Mara\Desktop\client\cocos2dx-quick\quick\lib\quick-src\lua_extensions\lpack\lpack
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
//#include "/Users/lsm/Development/android-ndk-r10e/sources/android/support/include/iconv.h"
#include "C:\Users\Mara\Documents\Android-Dev\android-ndk-r10d\sources\android\support\include/iconv.h"
#endif
  1. 簽名
    可以用管理員身份在cmd中用keytool生成簽名檔案,也可以在android studio中選擇“Build - Generate Signed APK”,建立一個jks檔案,然後生成簽名的apk。
    建立jks

生成apk

這裡寫圖片描述
V1,V2要同時選中。

問題1:
提示升級將Gradle由3.3升級到4.4之後,報錯Gradle Sync error。只能退回到3.3

參考:
csdn:babestudio的專欄

相關推薦

Windows開發Cocos2d-x lua 客戶伺服器

做為一個iOS開發者,一直在Mac + XCode環境下開發。初嘗遊戲開發,客戶端是Cocos-2d lua + quick的,服務端是C++的。因為暫時只需要修改iPhone工程,本想著在Mac上開發客戶端,但是沒成想XCode上無法進行lua程式碼的除錯。只

Windows新建Cocos2d-x V3.10專案(cocos2d-x lua)

好久沒更新了,最近2個月忙了不像話了。此處略去2W個字。。。。 言歸正傳,我剛剛接觸遊戲就是用的quick引擎,但是目前的這份工作是cocos2d-lua V3.10的,對我來說,有些迷茫,很多底層的

Windows生成cocos2d-x新專案並編譯執行

 下面的方法在win7和Win10平臺上,對cocos2d-x-3.14.1和cocos2d-x-3.16兩個版本都試過,沒有問題。 一開發環境搭建 已經搭建好環境的,這部分可以直接跳過。網

Mac使用Cocos2d-x Lua載入Cocos Studio到處的Json檔案動畫

本文轉自:http://segmentfault.com/blog/tangyunlou/1190000000648696 一、匯入Json 1、開啟Cocos Studio,新建專案,然後開始拖自己需要的控制元件和設計各種幀動畫。因為是beta版的,還有一些bug,比

UDP的客戶伺服器的例項(VC6.0實現)

伺服器端程式: // UdpServer.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> //使用win

Explorer : 釋出一個key-value儲存系統,帶有客戶伺服器

Explorer 一個key-value儲存系統,帶有客戶端和伺服器端。使用非常方便。 使用B+樹作為儲存引擎,客戶端和伺服器端使用TCP協議進行通訊。   程式碼採用C++實現,底層將客戶端和伺服器通訊封裝成了一個網路庫,裡面還有些還不錯的實現可供看看,比如

java使用UDP來進行客戶伺服器通訊的簡單例子

1:客戶端程式 package com.pb.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.Unk

Velocity 實現客戶伺服器模板

靈活的模板引擎為 JSP 技術提供一種沒有遺產負擔的選擇Sing Li 作家, Wrox Press 2004 年 3 月 13 日 Velocity 是一種通用的、開放原始碼的模板解決方案,可以在報告生成/資料轉換應用程式中獨立使用,也可以在 MVC 模型框架中作為檢視元

java socket 客戶伺服器互相通訊(聊天)

客戶端: package com.lzx.socket; import java.io.BufferedReader; import java.io.IOException; import jav

android上傳大檔案到伺服器客戶伺服器程式碼

使用一般的上傳方法一般上傳不能超過2m的檔案,也非常容易中斷和出錯,於是本人打算使用xutils框架進行檔案上傳開發,話不多說直接上原始碼 首先要下載這個類庫的jar包,地址:https://github.com/wyouflf/xUtils android端程式碼: 新增

網路通訊,實現客戶伺服器的通訊

      write(new_fd,buf,strlen(buf));    }    }else{      perror("fork");    }}int main(int argc,char *argv[]){    if(argc!=3){       printf("Usage ./server

關於客戶伺服器live555的一點bug修改

  客戶端主要出錯資訊:   MultiFramedRTPSource error: Hit limit when reading incoming packet over TCP. Increase \"MAX_PACKET_SIZE\"   RTCPInstance e

LInux中利用執行緒實現多個客戶伺服器進行通訊

上一篇博文講了如何利用子程序實現多個客戶端和伺服器端進行通訊, 那麼,這一篇部落格就來實現一下如何利用執行緒實現多個客戶端和伺服器端進行通訊 程式碼實現: ser1.c #include <

客戶伺服器的一些異常

第1個異常是java.net.BindException:Address already in use: JVM_Bind。該異常發生在伺服器端進行new ServerSocket(port)(port是一個0,65536的整型值)操作時。異常的原因是以為與port一樣的一

socket用執行緒實現客戶伺服器連續傳送資料

總共涉及到四個類。 其中包括,一個客戶端client,一個服務端server, 然後伺服器端和客戶端都有傳送和接收的功能,所以還有一個傳送類sendThread實現runnable介面,還有個接收類receiveThread實現runnable介面。 在客戶端client和

TCP 客戶伺服器

轉自:http://blog.csdn.net/itcastcpp/article/details/39047265 前面幾篇中實現的client每次執行只能從命令列讀取一個字串發給伺服器,再從伺服器收回來,現在我們把它改成互動式的,不斷從終端接受使用者輸入並和serv

Android客戶伺服器資料互動的第四種方法

        網上有很多例子來演示Android客戶端和伺服器端資料如何實現互動不過這些例子大多比較繁雜,對於初學者來說這是不利的,現在介紹幾種程式碼簡單、邏輯清晰的互動例子,本篇部落格介紹第四種:         一、伺服器端:         程式碼1:新增名為“A

客戶伺服器跳轉

  1.客戶端瀏覽器傳送HTTP request到伺服器    2.伺服器在接收到客戶端request之後,分別創建出HttpServletRequest物件和HttpServletResponse物件,然後呼叫所請求的servlet的service方法,同時將HttpServletRequest物件和Htt

socket bind在客戶伺服器使用的區別

1、client bind (1)bind埠 由程序選擇一個埠去連伺服器,(如果預設情況下,呼叫bind函式時,核心指定的埠是同一個,那麼呼叫多個呼叫了bind()的client程式,會出現埠被佔用的錯誤)注意這裡的埠是客戶端的埠。如果不分配,指定埠0,就表示交給核心去選擇

用 socket 通訊寫出客戶伺服器的通訊 , 要求客戶傳送資料後能夠回顯相同的資料

比較基礎的一個服務端客戶端互相通訊的程式/** * @author john socket 的伺服器端,接收到資料後列印到控制檯 的資料 * */ public class ServiceSocket_1 { public static void main(