现代操作系统应用开发实验报告
学号: 班级: 12级数媒1班
姓名: 实验名称: 捕鱼达人
一.参考资料
1. 2015_week10_demo
2. http://blog.csdn.net/chaoyuan899/article/details/17022191
3. http://blog.csdn.net/cg0206/article/details/7945648
4. http://www.android100.org/html/201408/04/50659.html
二.实验步骤
1.开始界面和界面跳转
(1)新建两个文件StartScene.cpp和StartScene.h
在StartScene.h中声明回调函数:
(2)定义start按钮,添加回调函数。
回调函数实现跳转到游戏界面HelloWorldScene
(3)在AppDelegate.cpp中定义StartScene为开始界面
2.游戏界面
(1)添加fishlayer和weaponlayer
fishlayer和weaponlayer作为两个单独的layer添加到HelloWorld的layer中:
(2)添加触摸响应
回调函数:
(3)添加shoot点击回调函数
回调函数:
getPostion获得的是相对与父节点的本地坐标,需要先转成世界坐标,再转成相对于子弹层的本地坐标。
三. 运行环境
Win8.1 和VS2013 update4
四.运行截图
开始界面:
点击跳转到游戏界面:
游戏初始位置:
点击shoot,子弹到达鱼的位置:
五.思考与总结
第二次作业比第一次难度大了很多。通过看群上的讨论和网上的博客,还是顺利的解决了问题。总结了一下,普遍遇到的问题有:
1.坐标转换的问题
作业中涉及本地坐标与世界坐标的相互转换:
首先要明确当前坐标和目标坐标系:例如:(1)鱼的游动的触摸响应事件
触摸点getLocation得到的是世界坐标,需要转换到fishlayer的本地坐标
(2)子弹移动到鱼的位置
m_fish->getPosition(); //得到鱼相对与鱼层的本地坐标
m_fishLayer->convertToWorldSpace(pos); //先转成世界坐标
m_weaponLayer->convertToNodeSpace(pos2);//再转成相对与子弹层的本地坐标
2.鱼的旋转问题
一开始直接使用setRotation(180),结果只能旋转一次,不知道为什么。
后来看到可以用三角函数来计算方向,结果可以根据目标位置来确定方向。
atan2((dst.x - fishPos.x), (dst.y - fishPos.y)) * 180 / 3.1415926 + 90
3.回调函数
很多人出现错误,因为没有注意返回值和函数参数。
触摸回调函数的返回值是bool类型
按钮点击回调函数返回值是void,参数Ref* pSender,表明是谁回调的。
第二篇:Web开发实验报告1
?????????????????装??????????????订?????? 实验报告
第 1 页
第 2 页
第 3 页
第 4 页
第 5 页
第 6 页
第 7 页
第 8 页