`
mmdev
  • 浏览: 12885423 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Cocos2d-x初入学堂(1)-->图形绘制

 
阅读更多

欢迎转载!转载时请注明出处:http://blog.csdn.net/aa4790139/article/details/8103608

由于小弟本人一直和游戏有着不解之缘,从小就特喜欢玩游戏,然后读大学,选专业都选了一个游戏专业,唉~ 各种贵...不过喜欢没办法。

然后出来是做J2ME的,然后转android游戏开发,尤其是有J2ME的朋友,相信都是从底层绘制开始的。在之前也用AndEngine引擎开发过两款游戏,除了底层绘制是用C++写的,其他都是java写的,然后出校以来,一直用的是java开发,所以对java比较熟悉,自然选择用AndEngine引擎开发...由于之前都是手工绘制,所以往往在屏幕回事那款,遇到各种让人蛋疼的事,适配的不是很好,AndEngine适配的非常好,另外一个特点,加载的内存很有限,所以经常内存溢出,不过可以采用TexturePacker来处理图片,可以减少咋用内存。对于从事java开发的,初学AndEngine引擎还是挺好的。

cocos2d-x自然也将图形绘制都封装好了,不过对于底层的图形绘制懂一点还是有好处的。。。废话不多说了,以后你就会懂得...

虽然cocos2dx中自带有test,test也有里面关于基本的图形绘制讲的也比较详细,但是现在我要你从头开始,绘制基本的图形,你会吗?

(注意:一下的名字,你都可以自己命名)

第一部分:工程的创建

第一步:创建win32的BaseDrawTest的工程

一下为我的工程目录:

红色来的文件夹到cocos2d-x目录下去copy到工程目录下....Debug.win32你的暂时没有,需要编译后才会产生.

第二步:打开BashDrawTest.sln,然后添加对应的目录

然后右击工程选择属性:

如下图:

选择框出来的,VC++目录,然后添加包含目录、引用目录、库目录...点后面的三角行,编辑,添加对应的目录:

包含目录和引用目录:如下图文件:

请选择你对应的目录包含进去,然后库目录,就是你BaseDrawTest目录下的lib,之前叫你copy 到工程目录下的..

现在好了,编译生成,成功显示HelloWorld,如果不显示请查看http://blog.csdn.net/aa4790139/article/details/8086635

第二部分:图形绘制

第一步:创建自己的场景和层

如下:我创建BaseScene场景和BaseDrawLayer层

第二步:编写我们这四个文件的代码

老样子,上传我的代码...

BaseDrawScene.h

#pragma once
#include "cocos2d.h"
#include "BaseDrawLayer.h"

using namespace cocos2d;

class BaseDrawScene :public CCScene
{
public:
	~BaseDrawScene(void);
	//第一种:创建方式
	static CCScene* scene();
	/*第二种:创建方式
	static BaseDrawScene* scene()
	{
		BaseDrawScene * scene = BaseDrawScene::create();//注意:就得重写父类的create方法
		BaseDrawLayer* layer=BaseDrawLayer::create();
		scene->addChild(layer);
		return scene;
	}
	  SCENE_CREATE_FUNC(BaseDrawScene);
	  */
};

BaseDrawScene.cpp

#include "BaseDrawScene.h"


BaseDrawScene::~BaseDrawScene()
{

}
CCScene* BaseDrawScene::scene()
{
	CCScene * scene = CCScene::create();
	BaseDrawLayer* layer=BaseDrawLayer::create();
	scene->addChild(layer);
	return scene;
}


BaseDrawLayer.h

#include "cocos2d.h"

using namespace cocos2d;

class BaseDrawLayer:public CCLayer
{
public:
	BaseDrawLayer();
	~BaseDrawLayer(void);
	virtual void draw();
	LAYER_CREATE_FUNC(BaseDrawLayer);
};


BaseDrawLayer.cpp

#include "BaseDrawLayer.h"

BaseDrawLayer::BaseDrawLayer()
{

}
BaseDrawLayer::~BaseDrawLayer(void)
{

}

void BaseDrawLayer::draw()
{
	//注意:注意OpenGL的坐标系,起始点为左下角
	CCSize s=CCDirector::sharedDirector()->getWinSize();
	
	//设置点大小、颜色,然后绘制一个点
	glPointSize(64);
	glColor4f(0.0,0.0,1.0,0.5);
	ccDrawPoint(ccp(s.width/2+10,s.height/2));

	//绘制一条线,参数为起始点和终点的坐标
	glEnable(GL_LINE_SMOOTH);
	ccDrawLine(ccp(0,0),ccp(s.width,s.height));

	 // 设置线的宽度,颜色,然后绘制一个圆
    glLineWidth(2);
    ccDrawColor4B(0, 255, 255, 255);
	//参数说明:中心点坐标,半径,角度,分段数,经过中间的线是否显示
    ccDrawCircle( ccp(s.width/2, s.height/2), 50, 0, 50, false);
	
	//绘制多边形
	ccDrawColor4B(255, 255, 0, 255);
    glLineWidth(10);
    CCPoint vertices[] = { ccp(0,0), ccp(50,50), ccp(100,50), ccp(100,100), ccp(50,100) };
    //参数说明:点集合,点数,这五个点是否构成闭合
	ccDrawPoly( vertices, 5, false);

	//绘制实心多边形
	glLineWidth(1);
	CCPoint filledVertices[] = { ccp(0,120), ccp(50,120), ccp(50,170), ccp(25,200), ccp(0,170) };
	ccDrawSolidPoly(filledVertices, 5, ccc4f(0.5f, 0.5f, 1, 1 ) );

	//绘制三角形
	ccDrawColor4B(255, 0, 255, 255);
    glLineWidth(2);
    CCPoint vertices2[] = { ccp(30,130), ccp(30,230), ccp(50,200) };
    ccDrawPoly( vertices2, 3, true);

	//绘制一个控制点贝瑟尔曲线
	//参数说明:起点、控制点、终点,分段数
	ccDrawQuadBezier(ccp(0,s.height), ccp(s.width/2,s.height/2), ccp(s.width,s.height), 50);

	//绘制两个控制点贝瑟尔曲线
	ccDrawCubicBezier(ccp(s.width/2, s.height/2), ccp(s.width/2+30,s.height/2+50), ccp(s.width/2+60,s.height/2-50),ccp(s.width, s.height/2),100);

	 //绘制填充的菱形
    CCPoint vertices3[] = {ccp(60,160), ccp(70,190), ccp(100,190), ccp(90,160)};
    ccDrawSolidPoly( vertices3, 4, ccc4f(1,1,0,1) );

    // 恢复opengl绘制的原始值
    glLineWidth(1);
    ccDrawColor4B(255,255,255,255);
    ccPointSize(1);
}

第三步:修改AppDelegate.cpp中的applicationDidFinishLaunching()方法

CCScene *pScene =BaseDrawScene::scene();

pDirector->runWithScene(pScene);

第四关:运行....呵呵

绘制的效果应该就出来了....绘制过程中的数据调节测试,就有大家熟悉吧!如果讲述得有误,或者不对的地方,还望各位指出!

分享到:
评论

相关推荐

    Cocos2d-x初入学堂-->CCSprite基本处理(2)工程

    Cocos2d-x初入学堂-->CCSprite基本处理(2):创建、缩放、旋转、混色;源码和资源都放在包里了

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

    大富翁手机游戏开发实战基于Cocos2d-x3.2引擎

    资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...

    Cocos2d-x高级开发教程

    Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...

    cocos2d-x-3.2旧版引擎下载

    cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656

    cocos2d-x实战项目

    cocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML文件读取与骨骼动画.rarcocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML...

    Cocos2D-X游戏开发技术精解

    资源名称:Cocos2D-X游戏开发技术精解内容简介:Cocos2D-X是一款支持多平台的 2D手机游戏引擎,支持iOS、Android、BlackBerry等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 《Cocos2D-X...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    精通COCOS2D-X游戏开发 基础卷_2016.4-P399-13961841.pdf

    精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发

    cocos2d-x-3.0 类图

    这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    Cocos2d-x 3.x游戏开发实战pdf含目录,内容详细,强烈推荐给大家。

    Cocos2D-X游戏开发技术精解.pdf

    《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如何建立跨平台的开发环境;引擎的核心模块——渲染框架;如何实现动态画面和...

    cocos2d-x windows vs2010配置

    Cocos2d-x windows vs2010 配置图文详解

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    Cocos2d-x实战 JS卷 Cocos2d-JS开发 PDF 电子书完整版本

    cocos2d-x 动画工具 Flash2Cocos2d-x 1.3

    cocos2d-x 动画工具 Flash2Cocos2d-x 1.3

    cocos2d-x 3.0

    cocos2d-x 3.0 人物行走 . 包里有代码和 图片资源.

    Cocos2d-x游戏编程——C++篇 .iso

    Cocos2d-x游戏编程——C++篇(电子工业出版社,徐飞 著)书本配套的光盘代码,

    cocos2d-x开发者文档(中文)2015-01-30

    因为最近在学cocos2d-x,找了半天在网上也找不到一个离线的文档,于是自己抽空做了一个,全部内容提取自cocos2d-x中文官网的文档页http://cn.cocos2d-x.org/article 目前只提取了cocos2d-x部分内容。因为内容比较多...

Global site tag (gtag.js) - Google Analytics