• 【Cocos游戏实战】功夫小子第八课之游戏打包和相关问题说明


    至此,功夫小子系列的Cocos2d-x的实战文章就结束了。


    源代码地址: https://github.com/SuooL/KungfuBoy


    如须要资源请邮件我 1020935219@qq.com


    再次贴个文件夹以便检索:

    功夫小子专栏地址:http://blog.csdn.net/column/details/suoolcocoshit.html点击打开链接


    【Cocos游戏实战】功夫小子第一课需求分析和开发环境的基本配置


    关于打包APK。能够选择使用Eclipse,当然我使用的是Cocos的命令行工具。

    可是如同在第一节课说的,我们的项目在3.0版本号创建。使用了一些库,所以打包之前须要更改下我们的Android.mk文件


    更改后文件内容例如以下:

     
    LOCAL_PATH :=$(call my-dir)
     
    include$(CLEAR_VARS)
     
    LOCAL_MODULE :=cocos2dcpp_shared
     
    LOCAL_MODULE_FILENAME:= libcocos2dcpp
     
    # 遍历文件夹及子文件夹的函数
    define walk
    $(wildcard $(1))$(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
    endef
    # 遍历Classes文件夹
    ALLFILES = $(callwalk, $(LOCAL_PATH)/../../Classes)
    FILE_LIST :=hellocpp/main.cpp
    # 从全部文件里提取出全部.cpp文件
    FILE_LIST +=$(filter %.cpp, $(ALLFILES))
    LOCAL_SRC_FILES :=$(FILE_LIST:$(LOCAL_PATH)/%=%)
     
    LOCAL_C_INCLUDES:= $(LOCAL_PATH)/../../Classes
    # 加入库的引用
    LOCAL_WHOLE_STATIC_LIBRARIES:= cocos2dx_static
    LOCAL_WHOLE_STATIC_LIBRARIES+= cocosdenshion_static
    LOCAL_WHOLE_STATIC_LIBRARIES+= box2d_static
    LOCAL_WHOLE_STATIC_LIBRARIES+= cocos_extension_static
    LOCAL_WHOLE_STATIC_LIBRARIES+= cocostudio_static
    LOCAL_WHOLE_STATIC_LIBRARIES+= cocos_ui_static
     
    include$(BUILD_SHARED_LIBRARY)
     
    $(callimport-module,2d)
    $(callimport-module,audio/android)
    $(callimport-module,Box2D)
    $(callimport-module,extensions)
    $(callimport-module,editor-support/cocostudio)  
    $(callimport-module,ui)
    



    其次就是打包完毕之后在手机上測试会出现一些白屏的问题,这个是Cocos引擎的bug,解决方法例如以下,改动AppActivity.java文件:


    /****************************************************************************
    Copyright (c) 2008-2010 Ricardo Quesada
    Copyright (c) 2010-2012 cocos2d-x.org
    Copyright (c) 2011      Zynga Inc.
    Copyright (c) 2013-2014 Chukong Technologies Inc.
     
    http://www.cocos2d-x.org
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
    ****************************************************************************/
    package org.cocos2dx.cpp;
    
    import org.cocos2dx.lib.Cocos2dxActivity;
    import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
    import android.view.WindowManager;
    import android.media.AudioManager;
    
    
    public class AppActivity extends Cocos2dxActivity {
    public Cocos2dxGLSurfaceView onCreateView() { 
        super.onCreateView();
        Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this); 
        glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8); 
           
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        return glSurfaceView; 
        } 
    }
    


    最后就是本游戏的最初想法是结合一个实际的手游项目来学习Cocos2d-x。学习其基本组件和核心模块,以及一些设计思想。(这个游戏是我在学习时Cocos2d-x所做的第一个项目。

    )做这个游戏的之前全然不知道Cocos,边学边做就出来了了这个游戏,并且因为时间有限,差点儿没有考虑架构设计和性能优化,因此代码如今看起来是非常丑的。

    希望大家可以通过本系列教材学习到Cocos的基本组件和核心模块的相关知识。并对游戏开发有一个大概的认识。

    我也是菜鸟一枚,所以不喜勿喷。

    另,源代码已经在github上。关于资源请邮件我索要。资源仅限于学习交流之用。请勿用于其它的商业用途。资源的版权归原作者全部,谢谢您的理解。

    期待和您一些学习交流。


    我自己想到一些改进的方向例如以下:

    1.    使用有限状态机(FSM)改写本游戏项目

    2.    为怪物加入更强大的AI,改进现有的碰撞检測

    3.    怪物的产生使用读取配置文件的方式

    4.    将游戏GameLayer各个层分开实现,减少程序的耦合性。

    5. 优化游戏

    6.    结合自己的思考进一步改进现有的设计。


    另外是一些资源的共享网盘地址例如以下:

    资源分享网盘地址:http://pan.baidu.com/s/1gds6vfX


    我的联系方式在博客左側栏有表示,如您有问题。欢迎一起学习交流~


  • 相关阅读:
    手脱ASPack2.12壳(练习)
    手脱UPX3.91壳(练习)
    如何在程序执行前插入可执行代码(算是吾爱的作业吧,活学活用)
    小米笔记本粉丝感恩狂欢趴【慎入!!】
    picpick截屏软件脱壳
    JAVA反序列化漏洞
    Java中的数据类型
    Java中常见的包
    Scrapy
    PHPstorm 函数时间注释的修改
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6807202.html
Copyright © 2020-2023  润新知