1.cocos2dx存储卡的游戏代码、而游戏移植到“华为荣耀”电话、问题的总结移植
1记忆卡片游戏代码
|
CardItem.h |
|
#pragmaonce #ifndef__CardItem_H__ #define__CardItem_H__ #include"cocos2d.h" USING_NS_CC; classCardItem { public: staticCardItem boolinit(intidx); CCLabelTTF CCSprite CC_SYNTHESIZE(int,_index,Idx); voidshowWhite(); voidshowText(); }; #endif |
|
CardItem.cpp |
|
#include"CardItem.h" CardItem *CardItem::create(intidx) { CardItem if { pRet->autorelease(); } else { deletepRet; pRet } returnpRet; } boolCardItem::init(intidx) { CCSprite::init(); setIdx(idx); setContentSize(CCSizeMake(80,80)); setAnchorPoint(ccp(0,0)); //设置字体 CCString ttf ttf->setPosition(ccp(40, this->addChild(ttf); bg bg->setTextureRect(CCRectMake(0,0,77,77)); bg->setAnchorPoint(ccp(0,0)); bg->setColor(ccc3(255,255,255)); this->addChild(bg); returntrue; } voidCardItem::showWhite() { ttf->setVisible(false); bg->setVisible(true); } voidCardItem::showText() { ttf->setVisible(true); bg->setVisible(false); } |
|
LayerGame.h |
|
#ifndef__LayerGame_H__ #define__LayerGame_H__ #include"cocos2d.h" #include"vector" usingnamespacestd; USING_NS_CC; classLayerGame { public: staticCCScene staticLayerGame boolinit(intdegree); voidgetAllPoint(); voidgetAvailablePoint(); voidaddCard(); voidshowCardAllWhite(); CCPointArray CCArray *allCards; vector<int>vec; CC_SYNTHESIZE(int,_degere, CC_SYNTHESIZE(int,_clickStart, virtualboolccTouchBegan(CCTouch }; #endif |
|
LayerGame.cpp |
|
#include"LayerGame.h" #include"CardItem.h" #include"stdlib.h" #include"time.h" #include"LayerOver.h" #include"cocos-ext.h" //支持声音的 #include"SimpleAudioEngine.h" usingnamespace CocosDenshion; USING_NS_CC_EXT; //放开扩展库 CCScene *LayerGame::scene(intdegree) { CCScene LayerGame scene->addChild(layer); returnscene; } LayerGame *LayerGame::create(intdegree) { LayerGame if { pRet->autorelease(); } else { deletepRet; pRet } returnpRet; } boolLayerGame::init(intdegree) { CCLayer::init(); setDegree(degree); setClickStart(0); getAllPoint(); getAvailablePoint(); addCard(); setTouchEnabled(true); setTouchMode(kCCTouchesOneByOne); SimpleAudioEngine::sharedEngine()->preloadEffect("boom.mp3"); returntrue; } voidLayerGame::getAllPoint() { allPoints allPoints->retain(); for { for { allPoints->addControlPoint(ccp(80 } } } //获得要作为游戏点的point voidLayerGame::getAvailablePoint() { srand(time(NULL)); while { intidx vector<int>::iteratoritr for { if break; } if { vec.push_back(idx); if break; } } } voidLayerGame::addCard() { allCards allCards->retain(); for { CardItem item->setPosition((CCPoint)allPoints->getControlPointAtIndex(vec[i])); addChild(item); item->showText(); allCards->addObject(item); } } voidLayerGame::showCardAllWhite() { CCObject CCARRAY_FOREACH(allCards,obj) { CardItem spr->showWhite(); } } boolLayerGame::ccTouchBegan(CCTouch { for { //推断是否点中 if containsPoint(pTouch->getLocation())) { showCardAllWhite(); SimpleAudioEngine::sharedEngine()->playEffect("boom.mp3"); if { ((CardItem*)allCards->objectAtIndex(i))->removeFromParentAndCleanup(true); allCards->removeObjectAtIndex(i); if { CCScene CCDirector::sharedDirector()->replaceScene(scene); CCLog("you } } else { CCScene CCDirector::sharedDirector()->replaceScene(scene); CCLog("you } _clickStart++; } } returntrue; } |
|
LayerOver.h |
|
#ifndef__LayerOver_H__ #define__LayerOver_H__ #include"cocos2d.h" USING_NS_CC; classLayerOver { public: staticCCScene staticLayerOver *create(boolres); boolinit(boolres); voidmenuCallBack(CCObject }; #endif |
|
LayerOver.cpp |
|
#include"LayerOver.h" #include"LayerStart.h" CCScene *LayerOver::scene(boolres) { CCScene LayerOver scene->addChild(layer); returnscene; } LayerOver *LayerOver::create(boolres) { LayerOver if { pRet->autorelease(); } else { deletepRet; pRet } returnpRet; } boolLayerOver::init(boolres) { CCLayer::init(); CCMenu CCMenuItem if { CCMenuItem menu->addChild(winItem); menu->addChild(back); } else { CCMenuItem menu->addChild(failItem); menu->addChild(back); } addChild(menu); menu->alignItemsVerticallyWithPadding(30); returntrue; } voidLayerOver::menuCallBack(CCObject { CCScene CCDirector::sharedDirector()->replaceScene(scene); } |
|
LayerStart.h |
|
#ifndef__LayerStart_H__ #define__LayerStart_H__ #include"cocos2d.h" USING_NS_CC; classLayerStart { public: CREATE_FUNC(LayerStart); staticCCScene boolinit(); voideasy(CCObject voidhard(CCObject voidveryHard(CCObject voidquit(CCObject enumDEGREE { EASY }; }; #endif |
|
LayerStart.cpp |
|
#include"LayerStart.h" #include"LayerGame.h" CCScene *LayerStart::scene() { CCScene LayerStart scene->addChild(layer); returnscene; } boolLayerStart::init() { CCLayer::init(); CCMenuItem menu_selector(LayerStart::easy)); CCMenuItem menu_selector(LayerStart::hard)); CCMenuItem this,menu_selector(LayerStart::veryHard)); CCMenuItem menu_selector(LayerStart::quit)); CCMenu menu->alignItemsVerticallyWithPadding(30); addChild(menu); returntrue; } voidLayerStart::easy(CCObject { CCScene CCDirector::sharedDirector()->replaceScene(scene); } voidLayerStart::hard(CCObject { CCScene CCDirector::sharedDirector()->replaceScene(scene); } voidLayerStart::veryHard(CCObject { CCScene CCDirector::sharedDirector()->replaceScene(scene); } voidLayerStart::quit(CCObject exit(1); } |
|
执行结果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 点击进入Easy后的效果: 失败后的效果: |
2记忆卡片手机移植
|
环境准备:所需软件: 32位:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 64位 |
|
软件安装(注意不要有中文文件夹): 1. 安装JDK jdk-7u25-windows-i586.exe 2. 安装安卓SDK
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 3. 安装安装NDK 4. 打开(F:\TransPlant\adt-bundle-windows-x86-20140321\eclipse\eclipse.exe): 效果图例如以下: 将game游戏项目导入,导入录入路径:E:\Installed\cocos2d-x-2.2.3\projects\game\proj.android 点击:File -- >Import 执行结果: |
|
5安装cygin。从官网(http://cygwin.com/install.html)上下载cygwin. 下载后软件:
A双击上面的64位或者32位的软件进行安装。 这里选择64位进行安装。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 配置cygwin. A改动:cygwin64\etc中的fstab,将最后一行凝视掉,而换成例如以下的配置: none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 左面cygwin的执行效果图例如以下: |
|
6配置环境变量 将Cygwin载入系统路径到Eclipse本地路径中。 解决bash找不到的问题。打开Eclipse->windows-preference看到例如以下配置:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> |
|
7 改动Android的makefile |
|
8配置项目中的build_native.sh文件,加上: chmod 777 "$APP_ANDROID_ROOT"/assets -R |
|
9导入cocos2dx的另外一个Android应用,仅仅有这样才干让本项目执行起来 载入路径是:E:\Installed\cocos2d-x-2.2.3\cocos2dx\platform\android\java 点击确定。 导入后的截图: |
|
8 将游戏移植到手机。将手机USB线接上电脑(注意,不要使用Android模拟器进行执行,cocos2dx在Android模拟器上执行由问题)。 右击game项目以Android项目进行run(这里以华为荣耀作为測试机)。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> 执行效果: 从以下game即使移植到华为荣耀手机上的cocos2d-x记忆卡片游戏 打开bin。拷贝bak文件就可以用: |
|
7 横屏、竖屏设置 android的AndroidManifest.xml文件里: screenOrientation="landscape"为横屏, screenOrientation="portrait"为竖屏 |
移植错误总结:
|
[2014-10-23 17:11:41 - myhello] Unable to resolve target 'android-8' [2014-10-23 17:24:58 - libcocos2dx] Unable to resolve target 'android-8' [2014-10-23 17:33:15 - SDK Manager] Created AVD 'AVD19' based on Android 4.4.2, ARM (armeabi-v7a) processor, [2014-10-23 17:33:15 - SDK Manager] with the following hardware config: [2014-10-23 17:33:15 - SDK Manager] disk.dataPartition.size=200M [2014-10-23 17:33:15 - SDK Manager] hw.accelerometer=yes [2014-10-23 17:33:15 - SDK Manager] hw.audioInput=yes [2014-10-23 17:33:15 - SDK Manager] hw.battery=yes [2014-10-23 17:33:15 - SDK Manager] hw.camera.back=none [2014-10-23 17:33:15 - SDK Manager] hw.dPad=no [2014-10-23 17:33:15 - SDK Manager] hw.device.hash2=MD5:b1157894a81a9869f18a16ee4591a709 [2014-10-23 17:33:15 - SDK Manager] hw.device.manufacturer=Generic [2014-10-23 17:33:15 - SDK Manager] hw.device.name=3.2in HVGA slider (ADP1) [2014-10-23 17:33:15 - SDK Manager] hw.gps=yes [2014-10-23 17:33:15 - SDK Manager] hw.keyboard=yes [2014-10-23 17:33:15 - SDK Manager] hw.keyboard.lid=yes [2014-10-23 17:33:15 - SDK Manager] hw.lcd.density=160 [2014-10-23 17:33:15 - SDK Manager] hw.mainKeys=yes [2014-10-23 17:33:15 - SDK Manager] hw.ramSize=512 [2014-10-23 17:33:15 - SDK Manager] hw.sdCard=yes [2014-10-23 17:33:15 - SDK Manager] hw.sensors.orientation=yes [2014-10-23 17:33:15 - SDK Manager] hw.sensors.proximity=yes [2014-10-23 17:33:15 - SDK Manager] hw.trackBall=no [2014-10-23 17:33:15 - SDK Manager] skin.dynamic=no [2014-10-23 17:33:15 - SDK Manager] vm.heapSize=16 [2014-10-23 17:35:56 - myhello] (skipping file '.gitignore' due to ANDROID_AAPT_IGNORE pattern '.*') [2014-10-23 17:35:56 - myhello] Unable to add 'F:\cocos2d-x-2.2.3\cocos2d-x-2.2.3\projects\myhello\proj.android\assets\CloseNormal.png': Zip add failed [2014-10-23 17:35:56 - myhello] ERROR: unable to process assets while packaging 'F:\cocos2d-x-2.2.3\cocos2d-x-2.2.3\projects\myhello\proj.android\bin\resources.ap_' [2014-10-23 17:35:56 - myhello] ERROR: packaging of 'F:\cocos2d-x-2.2.3\cocos2d-x-2.2.3\projects\myhello\proj.android\bin\resources.ap_' failed |
|
上面的错误原因是: 要改动:cygwin64\etc中的fstab,将最后一行凝视掉。而换成例如以下的配置: none /cygdrive cygdrive binary,noacl,posix=0,user 0 0 |
|
其他问题:略 |
版权声明:本文博客原创文章。博客,未经同意,不得转载。
1.cocos2dx存储卡的游戏代码、而游戏移植到“华为荣耀”电话、问题的总结移植的更多相关文章
- java俄罗斯方块游戏代码
java俄罗斯方块游戏代码: package com; import java.awt.Color; import java.awt.Graphics; import java.awt.event.K ...
- 【深入Cocos2d-x】使用MVC架构搭建游戏Four
喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...
- python学习笔记05:贪吃蛇游戏代码
贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下代码即可: #!/usr/bin/env python import pygam ...
- Cocos Creator实现左右跳游戏,提供完整游戏代码工程
1. 玩法说明 游戏开始后,点击屏幕左右两侧,机器人朝左上方或右上方跳一步,如果下一步有石块,成功得1分,否则游戏结束. 2. 模块介绍 游戏场景分为2个:主页场景(home).游戏场景(game) ...
- python 实现 跳一跳游戏 代码解析
这个代码实现的是 手动点击起点 和 终点 ,程序自动判断距离.触屏时间 完成跳跃 原理(摘自项目说明页面):1. 将手机点击到“跳一跳”小程序界面:2. 用Adb 工具获取当前手机截图,并用a ...
- 在 GitHub 复活 80 年代的游戏代码,它们出自第一本售出百万册的计算机书籍
今儿我在 GitHub 看到了一个很眼熟的名字和头像,但是第一时间没想起来他是谁.算了先看看是个什么神仙开源项目,竟然能登上今天的 GitHub 趋势榜首. 该项目是把<BASIC Comput ...
- Unity中制作游戏的快照游戏支持玩家拍快照
Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...
- Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局
Android实训案例(八)--单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局 阿法狗让围棋突然就被热议了,鸿洋大神也顺势出了篇五子棋单机游戏的视频,我看到了就像膜拜膜拜,就 ...
- 微信小程序开发的游戏《拼图游戏》
微信小程序开发的游戏<拼图游戏> 代码直接考进去就能用 pintu.js // pintu.js Page({ /** * 页面的初始数据 */ data: { }, initGame: ...
随机推荐
- CF 148D. Bag of mice (可能性DP)
D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- MVC5 Entity Framework学习参加排序、筛选和排序功能
上一篇文章实现Student 基本的实体CRUD操作.本文将展示如何Students Index页添加排序.筛选和分页功能. 以下是排序完成时.经过筛选和分页功能截图,您可以在列标题点击排序. 1.为 ...
- Java 开源博客 —— Solo 0.6.9 发布时间!
Solo 它是 GitHub 上 Star 的最大数量 Java 博客系统,今天,我们宣布 0.6.9 正式版,欢迎来到下载. 特性 基于标签的文章分类 博客/标签 Atom/RSS.Sitemap ...
- VB高清图标制作方法
我隆重介绍一个软件:ResHacker !!! 这个软件可以修改软件的很多东西包括图标和标题,下面看**作. 运行ResHacker打开要更改图标的exe文件, 图标组--1--右键0--替换资源-- ...
- 科技股晴间多云 阿里京东IPO或受影响
微博的时间长达一个月的时间才上市.科技股一直笼罩. Facebook一个月股价下跌21.55%:特斯拉跌幅21.69%:亚马逊的股价相比,1一个月27日高点下跌22.13%. 以前的明星股票都已进入华 ...
- C# 读取IE缓存文件(1)
using System; using System.Runtime.InteropServices; namespace Common { public class IECache { [DllIm ...
- object-c计划tips-添加到类对象属性
这个问题从网络包的内容,由于保密问题,我刚才所描述我的业余的想法. 基本的想法: 网络请求,我们应该能够使用基类BaseNetWork, 然后由派生类继承BaseNetWork,并实现一些特殊的方法. ...
- 浅析MVC和说媒的过程
什么是MVC? MVC 全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面 显 ...
- Java 信号 Semaphore 简介
Semaphore当前在多线程环境下被扩放使用.操作系统的信号量是个非常重要的概念,在进程控制方面都有应用. Java 并发库 的Semaphore 能够非常轻松完毕信号量控制,Semaphore能够 ...
- UFLDL接听教程练习(来自编码器和矢量编程疏)
最近想在深入学习研究,开始看UFLDL(unsuprisedfeature learning and deep learning)教程了.特将课后习题答案放在这里,作为一个笔记. 笔记: 1:自编码算 ...