cocos2d-x step by step(3) Double Kill
喏,咱们已经调通hello world 了,然后呢,咱们做一些高大上的东西,那做什么呢,做一个打乒乓球的小东西,啊哈!

这就是最终界面了,没画一个球形 就用一个白色方框代替吧。
啊哈!
public:
virtual bool init(); static cocos2d::Scene* scene();
void update(float dt) override; void menuCloseCallback(Ref* sender); void onButtonClicked(Ref *pSender,ui::Widget::TouchEventType type);
void onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event);
void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
CREATE_FUNC(FishTestScence);
首先呢,我们需要keypreed 和keyreleased 两个事件,因为要触发键盘事件
bool isUp = false;
bool isLeft = true;
bool isPreessLeft = false;
bool isPressRight = false;
bool isDead = true;
void FishTestScence::update(float dt)
{
if (isDead)return; const cocos2d::Vector<cocos2d::Node*> arr = this->getChildren();
Sprite* sprite1 = (Sprite*)arr.at();
Sprite* sprite2 = (Sprite*)arr.at(); if (ballPosition.x < )
{
isLeft = false;
}
else if (ballPosition.x > maxWidth)
{
isLeft = true;
} if (ballPosition.y < )
{
isUp = true;
}
else if (ballPosition.y > maxHeight)
{
isUp = false;
} isLeft ? ballPosition.x -= : ballPosition.x += ;
isUp ? ballPosition.y += : ballPosition.y -= ; if (isPreessLeft)dangbanVec.x -= ;
if (isPressRight)dangbanVec.x += ; if (((ballPosition.x - dangbanVec.x) > && ballPosition.y <= ) || ((ballPosition.x - dangbanVec.x) < - && ballPosition.y <= )) isDead = true; sprite1->setPosition(Vec2(dangbanVec.x, dangbanVec.y)); sprite2->setPosition(Vec2(ballPosition.x, ballPosition.y)); } // 键位响应函数原型
void FishTestScence::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)
{
const cocos2d::Vector<cocos2d::Node*> arr = this->getChildren();
Sprite* sprite1 = (Sprite*)arr.at();
Vec2 vec = sprite1->getPosition();
switch (keyCode)
{
case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
isPreessLeft = true;
break;
case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
isPressRight = true;
break; default:
break;
}
} void FishTestScence::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)
{
switch (keyCode)
{
case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
isPreessLeft = false;;
break;
case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
isPressRight = false;
break;
case EventKeyboard::KeyCode::KEY_UP_ARROW:
isDead = false;
break;
default:
break;
}
}
这是代码实现,大概是这样的,当点击up箭头,游戏开始,当白色方块不在触板内,则game over ,用 isDead缓存
再次按up重新开始,
小东西,没什么技术含量,只是娱乐!
不写了,代码里有!
// create a scene. it's an autorelease object
auto scene = HelloWorld::scene();
auto fish = FishTestScence::scene();
// run
director->runWithScene(fish);
这里替换一下就行,图片如果没有的话 上一篇内有呢
烦死了!
妈蛋的淘宝,给姑娘买东西半天提示我重置密码和支付密码,老子重置了,浪费老子一个小时,还你妈比的不能买,qnmlgb!艹!
代码:源代码
cocos2d-x step by step(3) Double Kill的更多相关文章
- POJ 3243 Clever Y (求解高次同余方程A^x=B(mod C) Baby Step Giant Step算法)
不理解Baby Step Giant Step算法,请戳: http://www.cnblogs.com/chenxiwenruo/p/3554885.html #include <iostre ...
- 解高次同余方程 (A^x=B(mod C),0<=x<C)Baby Step Giant Step算法
先给出我所参考的两个链接: http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4 (AC神,数论帝 扩展Baby Step Gian ...
- 【POJ2417】baby step giant step
最近在学习数论,然而发现之前学的baby step giant step又忘了,于是去翻了翻以前的代码,又复习了一下. 觉得总是忘记是因为没有彻底理解啊. 注意baby step giant step ...
- Step by step guide to set up master and slave machines(转)
Note: There is no need to install Jenkins on the slave machine. On your master machine go to Manage ...
- HDU 2815 Mod Tree 离散对数 扩张Baby Step Giant Step算法
联系:http://acm.hdu.edu.cn/showproblem.php?pid=2815 意甲冠军: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...
- enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现
enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用 ...
- enode框架step by step之saga的思想与实现
enode框架step by step之saga的思想与实现 enode框架系列step by step文章系列索引: 分享一个基于DDD以及事件驱动架构(EDA)的应用开发框架enode enode ...
- Step by step guide to set up master and slave machines on Windows
Note: There is no need to install Jenkins on the slave machine. On your master machine go to Manage ...
- Metrics.NET step by step使用Metrics监控应用程序的性能
使用Metrics监控应用程序的性能 在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前,或 ...
- HDU 2815 扩展baby step giant step 算法
题目大意就是求 a^x = b(mod c) 中的x 用一般的baby step giant step 算法会超时 这里参考的是http://hi.baidu.com/aekdycoin/item/2 ...
随机推荐
- SAS描述统计量
MEANS过程 MEAN过程默认输出的统计量有:观测总数.均值.标准差.最大值和最小值.如果要计算其他统计量或其中的某一些统计量,则可在PROC语句中指定统计量的关键字. BY语句规定了分组变量,要求 ...
- python - 读取配置文件
# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: read_config.py @ide: PyCharm Commun ...
- seleniumIDE使用
1.selenium IDE使用:适用于火狐浏览器 2.界面按钮包括录制(右上角的红点),运行脚本(中上页的绿色三角,包括依次运行和单个运行的2个运行按钮) 3.导出文件为.java,在文件选项中
- python风格之包导入
导入总应该放在文件顶部, 位于模块注释和文档字符串之后, 模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组: 标准库导入 第三方库导入 应用程序指定导入 每种分组中, 应该根据每个模 ...
- java EL详解
转自:http://www.codeceo.com/article/java-el-usage.html 一.EL简介 1.语法结构 ${expression} 2.[]与.运算符 EL 提供.和[] ...
- [BZOJ3817]Sum
[BZOJ3817]Sum 试题描述 给定正整数N,R.求 输入 第一行一个数 T,表示有 T 组测试数据. 接下来 T 行,每行两个正整数 n,r. 输出 输出 T 行,每行一个整数表示答案. 输入 ...
- BZOJ1068 [SCOI2007]压缩 【区间dp】
题目 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息.压缩后的字符串除了小 写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上一个M(如果当前位 ...
- Server-Side Rendering(服务端渲染)的优点与缺点
优点 1. SEO 客户端渲染,页面中只有初始的几个html容器,js生成内容填充到容器中,爬虫只能识别到初始的html容器,js生成的内容一般不会被识别,而服务端渲染直接给出html,爬虫可以识别到 ...
- 阿里面试题:说说HashMap的扩容过程?
这是一道阿里的面试题,考察你对HashMap源码的了解情况,废话不多说,咱们就直接上源码吧! jdk 1.7 源码 void resize(int newCapacity) { Entry[] old ...
- window maven安装(六)
Maven 实战系列之在Windows上安装Maven Maven是一个优秀的构建工具(类似于 Ant, 但比 Ant 更加方便使用),能帮助我们自动化构建过程,从清理.编译.测试到生成报告,再到打包 ...