参考blog : http://blog.csdn.net/column/details/jackyairplane.html

环境 xp + cocos2d-x-2.2.0 + vs2010

源码下载地址:点击打开链接

关于svn的简单使用:点击打开链接

cocos2d应用的大致启动流程

main函数最后一句:CCApplication::sharedApplication()->run()------>>pDirector->runWithScene(pScene);(AppDelegate.cpp)

就启动了应用程序的场景。

接着就是各个精灵在场景中表演动作以及与用户的互动表演,为了方便管理控制对精灵的处理往往采用分层来分别管理。

例如在本游戏中就有背景层(GameLayer)主角飞机层(PlaneLayer)子弹层(BulletLayer)等。

1.新建项目

在cocos2d源码中有个目录\tools\project-creator\

我在这里加了个project-creator.bat文件

里面内容如下:

@echo off
set /p projectName=请输入项目名称:
if "%projectName%"=="" goto inputError
set /p packageName=请输入包标示名:
if "%packageName%"=="" goto inputError
create_project.py -project %projectName% -package %packageName% -language cpp
pause
exit
:inputError
@echo 项目名称或者包标示名不能为空!
pause

双击运行

回车--回车

在cocos2d源码目录projects中就建好了项目AirPlane12

用vs2010打开编译运行

右上角怎么是HelloCpp?我要改为AirPlane。
将main.cpp下的改为eglView->setViewName("AirPlane");
编译运行一下,怎样是不是变了。
顺便提示哈,如果要改分辨率就改其下一句
eglView->setFrameSize(480, 320);
将里面的值改为你所需要的。

2.增加此游戏场景(GameScene)

// GameScene.h#ifndef __GAMESCENE_H__
#define __GAMESCENE_H__#include "cocos2d.h"
#include "GameLayer.h"USING_NS_CC;class GameScene : public CCScene
{
public:GameScene(void);~GameScene(void);CREATE_FUNC(GameScene);virtual bool init();GameLayer *_gameLayer;
};#endif
// GameScene.cpp#include "GameScene.h"GameScene::GameScene(void)
{_gameLayer=NULL;
}GameScene::~GameScene(void)
{}bool GameScene::init()
{bool bRet=false;do{CC_BREAK_IF(!CCScene::init());_gameLayer=GameLayer::create();CC_BREAK_IF(!_gameLayer);this->addChild(_gameLayer);bRet=true;}while(0);return bRet;
}

3. 背景类(GameLayer)的实现

// GameLayer.h#ifndef __GAMELAYER_H__
#define __GAMELAYER_H__#include "cocos2d.h"USING_NS_CC;class GameLayer :public CCLayer
{
public:GameLayer(void);~GameLayer(void);CREATE_FUNC(GameLayer);virtual bool init();void backgroundMove(float dt);
private:CCSprite* background1;CCSprite* background2;
};
#endif
// GameLayer.cpp#include "GameLayer.h"GameLayer::GameLayer(void)
{background1=NULL;background2=NULL;
}
GameLayer::~GameLayer(void)
{
}
bool GameLayer::init()
{bool bRet = false;do{CC_BREAK_IF(!CCLayer::init());CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("ui/shoot_background.plist");background1=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("background.png"));background1->setAnchorPoint(ccp(0,0));background1->setPosition(ccp(0,0));this->addChild(background1);background2=CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("background.png"));background2->setAnchorPoint(ccp(0,0)); background2->setPosition(ccp(0,background2->getContentSize().height-2));this->addChild(background2);this->schedule(schedule_selector(GameLayer::backgroundMove),0.01f);bRet=true;}while(0);return bRet;
} void GameLayer::backgroundMove(float dt)
{background1->setPositionY(background1->getPositionY()-2);background2->setPositionY(background1->getPositionY()+background1->getContentSize().height-2);if (background2->getPositionY()==0)background1->setPositionY(0);
}

4.修改AppDelegate.cpp文件

增加头文件 #include "GameScene.h"

将    CCScene *pScene = HelloWorld::scene(); 改为 CCScene *pScene = GameScene::create();

最后编译运行得到如下截图,背景动起来了。

飞机大战之一:让背景先动起来相关推荐

  1. 飞机大战之-添加背景

    之前我们已经生成了一个空白的窗口,接下来我们要在这个窗口上添加背景. 我们新建一个MyPanel的类用来单独设置面板. MyPanel是继承于JPanel的一个子类.导入所需的包. package v ...

  2. pygame为游戏添加背景_用 Python 制作飞机大战小游戏

    这这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思路是通过方向键来控制飞机的左右移动射击飞船.先来看下最后的效果为了新手也能完成,本文记录了编写的全部流程,也就是每次修改的代码 ...

  3. HTML5游戏开发(四):飞机大战之显示场景和元素

    <HTML5游戏开发>系列文章的目的有:一.以最小的成本去入门egret小项目开发,官方的教程一直都是面向中重型:二.egret可以非常轻量:三.egret相比PIXI.js和sprite ...

  4. 飞机大战小游戏(超详细)

    偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...

  5. 手把手教你使用Pygame制作飞机大战小游戏,4万字超详细讲解!

    点击上方"早起Python",关注并"星标" 每日接收原创Python干货! 大家好,偷学Python系列是由小甜同学从初学者的角度学习Python的笔记,其特 ...

  6. Python3+pygame实现有趣好玩的飞机大战游戏(附源码及素材)

    版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.开发环境 二.功能模块 三.游戏效果 四.完整项目下载 五.作者Info 一.开发环境 开发环境 :Windows10 Python3.6 ...

  7. c++课程设计:飞机大战(图形化界面)

    飞机大战.cpp #include <iostream> #include <graphics.h> #include <time.h> #include < ...

  8. pygame 飞机大战飞机、BOSS信息的显示

    目标,显示英雄飞机的得分,生命值,BOSS机的动态生命条 战斗界面中,信息数据是必不可少的,一般都包括得分值,当遇到BOSS时,还会显示BOSS的动态生命条,还有其他的飞机数量,炸弹数量等.不管生命信 ...

  9. android飞机大战功能,安卓飞机大战(二) SurfaceView实现自制背景

    用SurfaceView写一个自制的背景图,并且可以移动,加上安卓飞机大战(一)中的BackgroundManager类,可以直接使用 GameView代码: public class GameVie ...

  10. Java Swing 经典小游戏《飞机大战》———— (一)获取素材,创建窗口,添加滚动背景,双缓冲

    (一)最终效果 1.窗口 2.项目框架 (二)效果实现 1.获取素材 获取步骤省略,大家可自行到我的资源获取,放置在src目录下 2. 创建窗口 WinGame.java import java.aw ...

最新文章

  1. sql 执行顺序_10个简单步骤,完全理解SQL
  2. 网络操作系统P12页答案
  3. python init方法做了什么_Python类方法、__new__方法和__init__方法分别是什么
  4. mysql 参数配置优化
  5. 常用Linux网络/内存/磁盘分析工具
  6. oracle 插入n字母,Nhibernate在oracle批量插入失败,求解?
  7. 计算机打印机节支措施,“节支降耗,从我做起 ”倡导篇 ——节约纸张
  8. Java Session 会话技术
  9. Mac OS high Sierra 10.13.6 安装cuda
  10. GPU跑TensorFlow的各种显卡下的电脑配置(1080ti)
  11. IP地址、子网掩码、网关
  12. 【Pranet】论文及代码解读(ResNet部分)——jialiang nie
  13. 苹果Mac系统虚拟打印机CAD输出PDF文档软件—pdfwriter
  14. 文件加密都有哪些方法?
  15. 【java毕业设计】基于java+BS的QQ屏幕截图工具设计与实现(毕业论文+程序源码)——屏幕截图工具
  16. 桌面虚拟化VDesk 部署之一 导入VDesk服务器
  17. c语言函数申请内存,c中动态内存申请的函数
  18. 软件与中国古代史:政界往事(中)
  19. 【元胞自动机】保守策略元胞自动机三车道(开放辅路,软件园影响)交通流模型【含Matlab源码 1295期】
  20. 测试nfc功能软件,一般app测试的最佳方法

热门文章

  1. 服务器2003蓝屏A5修复,win2003文件服务器蓝屏修复全过程分享第2/2页
  2. 计算机打印机能不能取消正在,删除HP打印机驱动程序. 打印机驱动程序正在使用中,无法删除...
  3. 2018noip模拟 烷基
  4. 日本口音英语发音规则
  5. AngularJS中ngRouter和uiRouter的区别
  6. python中多行注释可以嵌套单行注释吗_Python单行注释与多行注释
  7. jQuery-源码阅读,JavaScript原生继承方式与jQuery中的继承
  8. 微信小程序学习3(wxss)
  9. 智慧班级管理系统 java
  10. 如何登入MySQL数据库