oa信用盘改单-菜鸟也能学cocos2dx 3.0 配置(二)

China☆狼群 提交于 2019-11-29 03:47:07

这篇主要是讲cocos3.0 的配置,
OA信用盘架设q<319.135.503.1>
鉴于网上已经有很多这种文章,那么我就简单的讲一讲:

1.python2.7 因为cocos引擎的项目新建是用python脚本做的,至于为什么不用python3.x 那么请看python2.7和python3.x的print~

2.ndk 这是你做android apk所必需的东西,先用ndk将c++代码编译成android可识别的so库,然后运用android的jni接口与android对接,其实cocos生成的程序在android上跑是一个activity,如果你cocos需要用到android上的功能比如视频,那么就需要用jni,或者2个activity之间进行切换(activity切换之间会有短暂黑屏,这个黑屏时间跟机子性能挂钩,是需要注意的。)

给个简单的示例:(beta2版本,以播放视频为例)

首先我新建1个video,运用的是android上的基于mediaview的videoview,

加入如下代码:
package org.cocos2dx.cpp;

import com.MyCompany.NEWGAME.R;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.VideoView;

//去掉 mainfest
public class video extends Activity implements MediaPlayer.OnCompletionListener{
/* Called when the activity is first created. /
private VideoView mVideoView = null;
private int mPositionWhenPaused = -1;

@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉状态栏,使之全屏。
    setContentView(R.layout.main);  
    mVideoView = (VideoView) this.findViewById(R.id.VideoView01);  

    String mUri = "android.resource://" + getPackageName() + "/" + R.raw.movie;//注意这里,我是在res/raw目录下增加了movie这个视频,R会自动更新生成,不用管。
    mVideoView.setVideoURI(Uri.parse(mUri));
    //mVideoView.setMediaController(new MediaController(this));//设置模式,播放进度条  
    mVideoView.setOnCompletionListener(this);

}

   protected void onStop(){

        super.onStop();
   }
        public boolean onError(MediaPlayer mp, int what, int extra) {
            // TODO Auto-generated method stub
            return false;
        }
     @Override  
         public void onDestroy(){
             super.onDestroy();
         }

         //Video播完的时候得到通知
         @Override  
         public void onCompletion(MediaPlayer mp) {

          this.finish();//会关闭当前activity

         }
         //开始
         public void onStart() {
         // Play Video

         mVideoView.start();
           super.onStart();
         }

         //暂停
             public void onPause() {
          //Stop video when the activity is pause.
         mPositionWhenPaused = mVideoView.getCurrentPosition();
         mVideoView.stopPlayback();

         super.onPause();
         }

}
</pre><img src="" alt="" /><p></p><p></p><p><span style="font-size:18px"></span></p><pre code_snippet_id="345026" snippet_file_name="blog_20140514_2_4309463" name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyCompany.NEWGAME"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="9"/>
<uses-feature android:glEsVersion="0x00020000" />

<application android:label="@string/app_name"//app的名字
             android:icon="@drawable/icon">//图标放在res/drawble下

     <activity android:name="org.cocos2dx.cpp.Cocos2dxActivity"//cocos的activity
              android:label="@string/app_name"
              android:screenOrientation="landscape"//横屏
              android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
              android:configChanges="orientation">

        <!-- Tell NativeActivity the name of our .so -->
        <meta-data android:name="android.app.lib_name"
                   android:value="cocos2dcpp" />

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />//注意,main表示主activity,edit为次
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    //然后你只要仿照上面将video的activty加进去就行,然后intent,进行2个activity的切换,限于篇幅不细讲了。
</application>

<supports-screens android:anyDensity="true"
                  android:smallScreens="true"
                  android:normalScreens="true"
                  android:largeScreens="true"
                  android:xlargeScreens="true"/>

<uses-permission android:name="android.permission.INTERNET"/>

</manifest>

还有不要忘了再main.xml中加入videoview和修改mainfest

说一下,如果将cocos的activity的设为edit,video设为main,那么在你退出cocos引擎的时候会再次进入video,这点你要注意。

3.xcode,vs2012,eclipse等ide,开发工具你总要的吧?没有你怎么开发?难道记事本?!哦god,大牛,收徒否?

4.环境配置,3.0final里面有个setup.py会帮你配置的,以及告诉你需要配置哪些了。

.

这里顺便在说一下,3.0final的samples除了test和empty好像都搬走了~或许是为了引擎包的大小吧,虽然哪些例子可能没testcpp好,但是也是有不过学习作用的,所以要找samples的话,可以从beta2下,rc开始就没了,记得就是这样的。2.x的搬过来感觉会好累,3.0beta2毕竟更为接近。

4.命令行cocos命令创建新项目

以下是例子

help和官网上有详细说明

我一直认为例子是最好的老师~

5.顺便提一下cocos code ide

专属lua和js的ide,非常感谢cocos的引擎组的制作

我看了下ide 的lua的代码提示是非常优良的,但是网上好像只是涉及到3.0rc,而在final出来的现在,我们也得跟着版本走,创建cocos 3.0final的lua项目

首先是框架目录设置

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!