The Plane.
The Plane_mainMenu
2014-04-16
-----------------------------------------------------------------------------------------------------
三个文字Lable
创建成Menu后,第一个Label字体明显比第二个字体大,将CCMenuItemFont的setFont全去掉后,变成如图模样。
感觉很奇怪,原因思考中。
_gameStart = CCMenuItemFont::create("Start", this, menu_selector(GameLayer::menuStartCallBack));_gameStart->setColor(ccc3(255, 255, 255));_gameEnd = CCMenuItemFont::create("Exit", this, menu_selector(GameLayer::menuEndCallBack));_gameEnd->setColor(ccc3(255, 255, 255));_gameMainMenu = CCMenu::create(_gameStart, _gameEnd, NULL);_gameMainMenu->setPosition(ccp(_screenSize.width*0.5, _screenSize.height*0.5));_gameMainMenu->alignItemsVerticallyWithPadding(50);_gameMainMenu->setContentSize(CCSizeMake(100, 100));this->addChild(_gameMainMenu,0);
2014-04-17
-----------------------------------------------------------------------------------------------------
今天添加了按钮scene切换,点击Start跳转到游戏黑屏,Exit退出游戏。
void GameIn::menuBackMenu(CCObject* pSender){CCDirector::sharedDirector()->replaceScene(GameLayer::scene());
}
2014-04-18
-----------------------------------------------------------------------------------------------------
团建。
2014-04-19
-----------------------------------------------------------------------------------------------------
团建。
2014-04-20
-----------------------------------------------------------------------------------------------------
今天准备好了画线,点,形。
_gameObjectBullet = GameObject::create();_gameObjectBullet->setPivot(ccp(100, 100));_gameObjectBullet->setTip(ccp(200, 200));_gameObjectBullet->setShapesType(OBJ_LINE);_gameObjectBullet->draw();this->addChild(_gameObjectBullet);_gameObjectPlane = GameObject::create();_gameObjectPlane->setTip(ccp(150, 150));_gameObjectPlane->setShapesType(OBJ_POINT);_gameObjectPlane->draw();this->addChild(_gameObjectPlane);_gameObjectEnemy = GameObject::create();_gameObjectEnemy->setTip(ccp(300, 300));_gameObjectEnemy->setPivot(ccp(260, 260));_gameObjectEnemy->setShapesType(OBJ_RECT);_gameObjectEnemy->draw();this->addChild(_gameObjectEnemy);
2014-04-21
-----------------------------------------------------------------------------------------------------
今天添加了触摸事件,现在可以搬运着方框到处跑拉,当然,是无限制的。明天完善一下。
遇到问题:error C2061: 语法错误: 标识符“CCSet”
解决方法:在相应文件中添加引用宏“USING_NS_CC;”
实现以下三个方法:
virtual voidccTouchesBegan(CCSet* pTouches, CCEvent* event);virtual voidccTouchesMoved(CCSet* pTouches, CCEvent* event);virtual voidccTouchesEnded(CCSet* pTouches, CCEvent* event);
在init方法中设置可触摸为true
this->setTouchEnabled(true);
拖动的动作主要是在moved中实现的。
2014-04-22
-----------------------------------------------------------------------------------------------------
今天头脑风暴,屏幕移动还没有实现完成,明天需要继续。最近几天头好乱,思绪是一点都没有拉。
以飞机为中心,四个方向
//up (down,left,right)
//down (up,left,right)
//left(up,down,right)
//right(up,down,left)
后来一想好像不对,触摸屏幕中的任意一点,不用来区分上下左右,还是直接计算触摸点和拖动点的距离差比较靠谱些。
2014-04-23
-----------------------------------------------------------------------------------------------------
今天终于明白之前的错误在哪里了,今天我重新写了GameObject类,继续了CCNode,和CCTargetedTouchDelegate。
virtualvoid onEnter();
virtualvoid onExit();
boolcontainsTouchLocation(CCTouch* touch);
virtualbool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtualvoid ccTouchMoved(CCTouch* touch, CCEvent* event);
virtualvoid ccTouchEnded(CCTouch* touch, CCEvent* event);
virtualvoid touchDelegateRetain();
virtualvoid touchDelegateRelease();
实现方法如上,在OnEnter()中添加触摸响应。
偏移计算方法为
bool GameObject::ccTouchBegan(CCTouch*touch, CCEvent* event){
if(!containsTouchLocation(touch)){
returnfalse;
}
else{
iscontrol= true;
CCPointtap = touch->getLocationInView();
tap= CCDirector::sharedDirector()->convertToGL(tap);
offset.x= tap.x - this->getPosition().x;
offset.y= tap.y - this->getPosition().y;
}
returntrue;
}
void GameObject::ccTouchMoved(CCTouch*touch, CCEvent* event){
if(iscontrol){
CCPointtap = touch->getLocationInView();
tap= CCDirector::sharedDirector()->convertToGL(tap);
floatx = tap.x - offset.x;
floaty = tap.y - offset.y;
//setPosition(ccp(tap.x,getPosition().y));
this->setPosition(x,y);
}
}
这样就可以实现随拖动坐标走动了,但现在有一个不好的地方,必须要触摸到Plane才会移动,可以考虑优化为触摸屏幕上任意一点,都随着移动,因为有些时候,你的手可能会挡到飞机拉,有那么复杂吗?哈哈,很简单拉,只需要把 if(!containsTouchLocation(touch)){
returnfalse;
}
去掉就OK拉,现在不必是必须触摸飞机本身喽,屏幕里的任意点都会生效。
隐形坑:
这里要注意的是getLocation()和getLocationInView(),前者在这种移动方法中,可能会造成Y轴反方向,所以需要使用在视图内的Location.
/** returns the current touch location in screen coordinates */
CCPoint getLocationInView() const;
/** returns the current touch location in OpenGL coordinates */
CCPoint getLocation() const;
看到了吧,getLocation是返回在OpenGl中的坐标,面OpenGl的坐标系好像正好和实际相反。
2014-04-24
-----------------------------------------------------------------------------------------------------
今天预想的是添加子弹,但遇到了一些问题,最后决定先添加一个激光枪吧,嘿嘿,因为它不涉及什么先后出现顺序问题,就一直在那就行拉。明天在继续想一下怎么实现圈圈子弹效果。
这些还都没有设置碰撞体,等先把子弹效果实现在来添加一下。
2014-05-03
-----------------------------------------------------------------------------------------------------
终于有时间来继续这个了,3.0了,好快。
《1》draw不能再被重写了,那么我们只能来用另外一个带好多参数的了,但调用方法和之前一样。
《2》touch需要注册下listen了,要不不会在触发。
Node::onEnter();// Register Touch Eventauto listener = EventListenerTouchOneByOne::create();listener->setSwallowTouches(true);listener->onTouchBegan = CC_CALLBACK_2(Player::onTouchBegan, this);listener->onTouchMoved = CC_CALLBACK_2(Player::onTouchMoved, this);listener->onTouchEnded = CC_CALLBACK_2(Player::onTouchEnded, this);_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
《3》undefined reference to XXX 遇到这个一般是没有找到引用 ,寻思了半天,最后终于想起,我用的make编辑器不会自动 把你新添加的代码文件放到make列表的,自己手动加一下吧。。。。。。想了半天才想到,好2 -+-。
The Plane.相关推荐
- DPDK(Data Plane Development Kit)快速处理数据包 开发平台及接口 简介
一.网络IO的处境和趋势 从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10GE/25GE/40GE/100GE的演变,从中可以得出单机的网络IO能力必须跟上时代的发展. 1 ...
- 【CodeForces】576 C. Points on Plane
[题目]C. Points on Plane [题意]给定坐标系中n个点的坐标(范围[0,10^6]),求一种 [ 连边形成链后总长度<=2.5*10^9 ] 的方案.n<=10^6. [ ...
- android 模拟飞行,安卓版模拟飞行 X Plane 9试玩
2004年的圣诞节那天,我垂头丧气地坐在我家的廉价电脑前,盯着那老式的CRT显示器屏幕.我都不知道电脑里的模拟飞行游戏是正在安装,还是已经卡死了.电脑主机在桌子下面嗡嗡嗡地响,都快带不动这个庞然大物般 ...
- VTK:几何对象之Plane
VTK:几何对象之Plane VTK:几何对象之Plane 描述 代码 Plane.cxx CMakeLists.txt VTK:几何对象之Plane 描述 vtkPlaneSource对象创建一个m ...
- CodeForces - 1529F It‘s a bird! No, it‘s a plane! No, it‘s AaParsa!(最短路+思维建图)
题目链接:点击查看 题目大意:给出 nnn 个点(从 000 开始编号)和 mmm 条边的有向带权图,不过 mmm 条边是动态的,经过 ttt 秒后,第 iii 条边就从 ai−>bi,cia_ ...
- PADS2007中的层类型(plane type) 简介
所有平面层中包括非特殊层(非平面层NO PLANE,通常为走线ROUTING层)和特殊层(包括CAM平面层及SPLIT分割混合层). 1. No plane:通常指走线层,如Top Bottom, ...
- F. It‘s a bird! No, it‘s a plane! No, it‘s AaParsa!
F. It's a bird! No, it's a plane! No, it's AaParsa! 题意: 有n个城市,每个城市都有一个传送大炮指向另一个城市,每个大炮都有发送时间,每过1s,大炮 ...
- 平面方程(Plane Equation)
平面方程(Plane Equation) 原文链接:http://www.songho.ca/math/plane/plane.html 翻译:罗朝辉 (http://www.cnblogs.com/ ...
- [Unity] Canvas 设置为 Screen Space - Camera 时,UI 被场景物体遮挡的解决办法:设置 Canvas 的 Plane Distance 为一个较小的数
Canvas 设置为 Screen Space - Camera 时,UI 可能被场景物体遮挡,如下图所示 只要设置 Canvas 的 Plane Distance 为一个很小的值,它就几乎永远不会被 ...
- 微软研究院研究员Ryan Beckett 博士论文《Network Control Plane Synthesis and Verification》下载—2018ACM最佳博士论文题目奖
欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 论文下载 关注微信公众号[计算机视觉联盟],回复关键词[Ryan]即可下载全文! 论文封面 论文目录 目前,Beckett 是微软研究 ...
最新文章
- 第三篇 (.net socket 与 android )
- kafka数据丢失的场景
- vi编辑器的学习使用(十五)
- 有关像素动作游戏《Resolutiion》美术哲学的讨论
- linux 批量替换
- AliRTC 开启视频互动 “零计算” 时代
- Packet Capture
- 使用Connector / Python查询MySQL数据
- 微信小程序文件下载---视频,图片。
- qmap按插入顺序排序_C++语言排序算法之插入排序
- 通过VC编程实现基于LAN的PC机与Tektronix示波器通信
- 如何查看MacBook Pro硬盘序列号
- 查看mysql端口 windows_Windows运维之windows下如何查看和修改MySQL的端口号
- Android Proguard 不混淆所有第三方jar(忽略配置设置)
- php微信公众号开发,入门篇(实现了关注公众号发送欢迎信息,发关键词自回复)
- 朴素贝叶斯、贝叶斯网络分类器
- 如何装虚拟机及在上面安装LINUX操作系统
- 新手程序员快速升职项目经理(程序员小故事1)
- 新书推荐 |《种子用户方法论》
- 正版计算机软件识别方法,微软正版软件如何识别?
热门文章
- Java 逆向工程
- 构造一个Car类,包含无参和有参两种构造方法
- 如何 Scale Up/Down?- 每天5分钟玩转 Docker 容器技术(126)
- springboot+mysql “友书”综合书籍平台-计算机毕业设计源码24489
- html中hover无法触发,CSS hover失效的原因总结
- 剑指 Offer 15. 二进制中1的个数
- 【强烈推荐】【超强去水印神器】支持给图片视频一键去除/添加水印!
- 英特纽购途索的商业模式是否存在裂变效应?
- Andrid自定义view:打造3D画廊
- html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程