码迷,mamicode.com
首页 > 其他好文 > 详细

新手可以学习cocos2dx 3.0 组态(两)

时间:2015-07-20 18:30:01      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

这主要是关于cocos3.0 组态,鉴于互联网已经有很多这样的文章。所以我简单谈一下:

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项目

首先是框架文件夹设置

技术分享技术分享

技术分享技术分享

技术分享

技术分享

然后我们用cocos命令创建一个新lua项目吧,记住一定要-l lua和 -t runtime 不然的话出不来buildpath的哦~

技术分享技术分享

技术分享

然后改动.buildpath为

技术分享

<?

xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="lib" path="src"/>
<buildpathentry kind="con" path="org.eclipse.koneki.ldt.ExecutionEnvironmentContainer/cocos2dx/3.0-stable"/>
<buildpathentry kind="con" path="org.eclipse.koneki.ldt.ExecutionEnvironmentContainer/lua/5.1"/>
</buildpath>


随后import到ide中

技术分享

技术分享

技术分享

技术分享

技术分享

有代码提示咯~

然后就開始愉快的lua编程吧~~~嘻嘻

http://www.cocos2d-x.org/wiki/Code_Editor这个官网地址。最好从官网下ide

技术分享

ps:本人在将cocos引擎的时候会做一定延伸,多才多艺的总的没错的不是技术分享

至于QandR 下一个会做。该空间并不限于文字,冗长,看不~~

版权声明:本文博客原创文章,博客,未经同意,不得转载。

新手可以学习cocos2dx 3.0 组态(两)

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/4661840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!