
正文
android游戏,安卓游戏中心
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
android 游戏sdk设计
背景:
目前游戏存在对于接入的sdk存在两种形式,单Activity和多Activity模式
单Activity:游戏只有一个Activity,作为游戏的主入口
多Activity:游戏存在多个Activity,界面层级不固定
对于单Activiy不会存在太多问题,但是多Activity问题相对会比较多,比如我们sdk有浮窗,可以在这种情况下会被游戏的界面遮挡。
对于游戏有个共同的问题,就是选择在什么时候选择用View还是Activity,如果选择不好的话,当弹出sdk界面的时候,会阻碍游戏的进程,以至于游戏运行卡顿、花屏,甚至崩溃
设计:
1、api总揽
XQSDK.getInstance().init(this);//初始化接口
//生命周期处理
XQSDK.getInstance().onCreate();
XQSDK.getInstance().onResume();
XQSDK.getInstance().onRestart();
XQSDK.getInstance().onStart();
XQSDK.getInstance().onPause();
XQSDK.getInstance().onStop();
XQSDK.getInstance().onDestroy();
XQSDK.getInstance().onActivityResult(requestCode, resultCode, data);
XQSDK.getInstance().onConfigurationChanged(newConfig);
XQSDK.getInstance().onNewIntent(intent);
XQSDK.getInstance().onBackPressed();
//设置监听事件
XQSDK.getInstance().setSDKListener(new IXQSDKListener() {
@Override
public void onResult(Response res) {
}
@Override
public void onPayResult(Response res) {
}
@Override
public void onLogout(Response res) {
}
@Override
public void onLoginResult(LoginResult logRes) {
}
@Override
public void onExit(Response arg0) {
}
}
XQUser.getInstance().login();//登陆
//支付
PayParams params =new PayParams();
params.setRoleId("rid_001"); //角色编号
params.setRoleName("花无缺"); //角色名称
params.setRoleLevel("99"); //角色等级
params.setServerId("sid_001"); //区服编号
params.setServerName("江湖一区"); //区服名称
params.setProductId("pid_101"); //商品编号
params.setProductName("飞羽扇"); //商品名称
params.setProductDesc("花无缺专属武器"); //商品描述
params.setPrice("1"); //充值金额(整型)
params.setOrderID("cp_orderId_001"); //CP订单号
params.setAttach("扩展参数"); //扩展字段
XQPay.getInstance().pay(params);
XQUser.getInstance().logout();//注销
XQUser.getInstance().exit();//推出游戏
//数据统计
UserExtraData userData =new UserExtraData();
userData.setDataType(1); //数据统计类型 1:登录 2:注册 3:登出 4:创建角色 5:角色升级
userData.setRoleID("rid_001"); //角色编号
userData.setRoleName("花无缺"); //角色名称
userData.setRoleLevel("99"); //角色等级
userData.setServerID("sid_001"); //区服编号
userData.setServerName("江湖一区"); //区服名称
userData.setMoneyNum(9099); //玩家剩余金币
userData.setUid("hwq2355617592"); //玩家编号
userData.setAttach("0"); //扩展字段
XQData.getInstance().submitUserData(userData);
相关问答
Q1: 什么手机单机游戏,类似模拟人生?
类似模拟人生游戏有《虚拟家庭2:我们的梦之屋》、《托卡生活办公室》、《老板驾到》、《模拟人生:自由行动》、《燕男的城市生活》、《AvakinLife》、《模拟城市我是市长》、《人生目标》等。
1、虚拟家庭2:我们的梦之屋
《虚拟家庭2:我们的梦之屋VirtualFamilies2:OurDreamHouse》是一款模拟游戏,游戏中你将要在你的手机上组建一个属于你的家庭,你需要好好照顾自己的家庭。游戏内容很丰富,要素较多,画面比较卡通,推荐给模拟类游戏爱好者。
2、模拟城市我是市长
《模拟城市:我是市长》是美国艺电股份有限公司开发的一款3D写实风格的模拟经营类手游,是《模拟城市》系列的最新续作。本游戏沿袭了《模拟城市》系列游戏的经营建造玩法。将城市建设分为:住宅建筑、资源建筑、发展建筑三大分类。
3、AvakinLife
《AvakinLife》 是一款角色扮演社交游戏,游戏中你身处一个虚拟世界,你可以在这个世界做任何你所能想象的事,与朋友酒吧聚会,咖啡厅午后的休闲时光,海滩与情人的缠绵相伴。
4、人生目标
人生目标是一款趣味十足的模拟人生游戏,一款模拟生活的小游戏,游戏中充满了多样的选择,你需要通过做出这些必要的选择,探索游戏中的生活,游戏内容丰富。在这里你是一个新的毕业生,一切都是未知数,你要建设你的家,你会发现了一个有价值的职业,并且找到真正的爱情,最后成为真正超级巨星。
5、模拟人生:自由行动
模拟人生:自由行动(TheSimsFreePlay)是一款EA大作,通过不同的个性和身体特征来自定义游戏的开始,能否实现模拟人生的命运都由你来选择。使用轻触和加速感应控制来探索开放式的android游戏世界。
参考资料:百度百科-虚拟家庭2:我们的梦之屋
参考资料:百度百科-模拟城市我是市长
参考资料:百度百科-AvakinLife
参考资料:百度百科-人生目标
参考资料:百度百科-模拟人生:自由行动
Q2: 求末日生存类的手机游戏
冒险探索类中的手游涵盖了各种类型的刺激生存玩法的游戏,在游戏里小伙伴可以体验一场开放式世界的生存经历,今天风林手游(14294.com)就为大家带来一些福利比较好的这类型手游推荐,平台也可以另外优惠券和礼包哦。
1.贪婪洞窟 网页链接 作为一款H5游戏点开即可畅玩哦
《贪婪洞窟》是一款地牢探险Roguelike手游。游戏整体画风神秘而诡异,共有4种不同难度,400层随机地形迷宫,60多种不同的怪物和BOSS,300多件随机属性的可收集装备, 20000+字的线索式剧情。还有更多独特有趣的玩法等你发现!
2.航海王·启航(2.0大海战) 网页链接
《航海王 启航》为ONE PIECE动画官方授权的手机游戏。首创紧张刺激的动作即时操作类玩法,众多原著知名角色现身游戏,创造一股海盗团新势力驰骋大海,走向成为海盗王的荣耀之路。
3.镇魂街:武神躯(GM科技刷充) 网页链接
《镇魂街:武神躯》是一款国漫改编的动作热血卡牌对战游戏,原著作者许辰监修,原班声优、美术团队联手,极致还原经典剧情!人气角色、经典场景1:1还原,热血战斗3D展现,这条镇魂街你说了算!召集专属于你的镇魂将,和曹焱兵叱咤罗刹街,与北落师门守护心中挚爱!各位镇魂将,觉醒你的武神躯,使用你的GM工具免费充值,加入我们的队伍吧!这条街,你说了算!
4.崛起:终极王者(送神医华佗) 网页链接
《崛起:终极王者》是一款三国题材3D即时动作卡牌手游大作,精美画面,高还原度场景,3D建模,让你身临其境感受真三国!3D即时动作卡牌,风骚走位、技能打断、风雷水火合体技,绚丽特效,大招秒杀,超强打击快感,挑战极限操作;独创全阵营武将培养,武将的多维成长所有武将可持续培养(没有废将);丰富日常玩法,多种日常竞技挑战,紧张刺激(BOSS战)、快速养成角色(过关斩将)、全服混战PK(国王争夺战)、王城争夺成王败寇(阵营战),下载崛起终极王者让你体验到不一样的新鲜玩法,绝不枯燥!
5.奇迹之剑 网页链接
化身战神觉醒归来,体验3D电影级魔幻大世界;屠龙斗兽、收集神宠,觉醒神装!全新联盟领地玩法,联盟争霸对抗升级;团结兄弟争夺秘宝领地,跨服战场随时PK,特色变身暴怒输出,圣城由你统领!
6.新盗墓笔记 网页链接
《新盗墓笔记》手游是由南派三叔正版授权的正统盗墓题材MMO手游,前期如何玩【首充】(必氪)其中有孤品“招财珊瑚树”,必氪的原因之一。藏品技能:打怪经验永久增加10%,等级对这个游戏来说非常重要,特别是前期等级高低就直接等于实力强弱。【0元购】(必氪)88元购买,获得红色品质的藏品,孤品“蛇眉铜鱼”+奇物升级材料+8800蓝钻。就这么说吧,等于88块买个120秒1次的2秒无敌!并且获取途径只有这个,所以你懂我意思吗?冲!!!另外的就按需来了。
7.有杀气童话2 网页链接
《有杀气童话2》是网易游戏推出的全新战斗童话 MMO手游。沿袭前作奇幻的童话背景,有着颠覆传统的剧情,在看似美好实则危机四伏的世界,冒险者们将开启一场炫丽的 战斗之旅。在奥兹大陆,奇遇有温度的童话伙伴!组队虐怪,打本爆装,交易致富!还可以多重转职,自由加点,打造专属技能流派!更有10000平私人城堡,养花钓鱼,享受童话休闲生活!
以上就是风林手游(14294.com)推荐的一些福利冒险探险类手游,喜欢的就是搜索不一样的新大陆吧。
Q3: iOS、Android 值得下载的 11 个新 App
iOS 精选(3 款)
曾被苹果拒绝上架的 Steam 官方串流应用 Steam Link 上周终于登陆 App Store。Steam Link 可通过本地网络串流的方式,将 PC 端 游戏 「投屏」到 iOS 设备,从而在实现在移动设备上畅玩 PC 游戏 。
Steam Link 使用方法很简单,首先确保 PC 和 iOS 设备处于同一网络环境中,然后需要适配控制器,你可以选择继续使用手柄操作,也可以选择通过手机触控来模拟键盘或手柄操作(有一定概率导致你吐血,慎用)。当应用在网络环境中识别到开启 Steam 的 PC 设备后,会自动打开 PC 端的大屏幕模式,同时将屏幕同步到移动设备上,之后你就可以直接用手机操控 Steam 和库里的 游戏 了。
Steam Link 虽说可以让 iOS 设备玩上「大作」,但实际运行端还是本地 PC,所以你不能指望通过 Steam Link 改善 游戏 性能或是完全摆脱 PC 束缚。另外,官方建议在 5GHz 网络环境下进行串联,经过我个人测试 2.4GHz 也基本可以满足需求,只是偶尔会出现画面卡顿马赛克的问题,而且二者均有画质下降的问题出现,所以如果你的 iOS 设备和 PC 有「一墙之隔」,也可以试着在 2.4GHz 下凑合凑合。
有一段时间没有推荐壁纸应用了,这款 Pic Me 上周刚刚上架似乎就招徕了一波「差评」,但是体验之后我觉得这东西还是「未来可期」的。这款壁纸应用有着丰富的图片素材,据开发者介绍图片都是来自图片网站 Pexels 的,这对于刚刚经历过视觉中国那波「骚操作」的我们来说,算是有小小的安心吧。
Pic Me 提供了「最新」「热门」「色彩」三个分类,其中「色彩」分类提供了 11 种常用色彩分类,对于有锁屏主屏「套图强迫症」的用户来说,通过色彩分类筛选壁纸素材,可以更容易地组成套图,不用再去一张张甄选。除了色彩分类外,应用还支持通过中英文关键词筛选壁纸素材,不过中英文得出的结果差别较大,中文标签会更丰富一些,建议开发者后续可以再优化一下。
应用的问题目前主要有两个方面,一个是频繁的闪退,一个是图片加载时间较长,这两项的确非常影响使用体验。这两个问题开发者回复均在优化中,此外建议 Pic Me 能将目前的图片清晰度选项,修改为针对 iOS 设备的裁剪功能,让下载的壁纸可以直接使用,而无需在设置时继续调整,预计能进一步提升用户体验。
作为一款完全免费的扫描工具,口袋扫描仪在扫描速度、自动识别方面做的还算不错,对于剪裁、旋转、移动等基本的编辑功能,应用也都有支持。比较令人惊喜的地方在于口袋扫描仪支持 OCR 文本识别功能,几次测试的效果也比较理想,日常用来识别图片里的文字绝对够用。
Android 精选(3 款)
无论手机做得怎么样,每一代一加手机所搭载的那些充满艺术气息的默认壁纸,在我看来都是排在同类壁纸中第一梯队的。如果你也喜欢一加手机的壁纸风格,或者最近在寻找一些新壁纸尝尝鲜,不妨试试由一加手机御用壁纸设计师 Hampus Olsson 推出的壁纸应用 Abstruct。
Abstruct 收录的所有壁纸均由 Hampus Olsson 本人亲自创作,壁纸类型虽然都已抽象几何图形为主,但风格上仍然富于变化。也正是因为如此,Abstruct 内置了八套可选壁纸包,其中作者本人的作品精选、一加官方壁纸合集、AOSPA 官方壁纸合集以及数字绘画风格包可免费使用,其余四套则需 1.99 美元的内购才能解锁。
这些壁纸是否好看这个问题见仁见智,如果你觉得一加手机自带的壁纸还算看得顺眼,1.99 美元就能轻松拥有超过 300 张统一风格不重样壁纸自然也非常划算;另外 Abstruct 这款应用本身的设计也非常出色,浏览和设置壁纸的体验不仅养眼,也十分顺畅。
最后,Abstruct 所提供的壁纸均为 4K 分辨率,即便是当前市面上显示效果最为出众的 Android 机型也能轻松满足。
如果你接触过 Android 美化,或者更确切地说,如果你也和我一样尝试过应用商店中大部分叫得上名字的图标包,那你一定不会对 Meeye 感到陌生。
作为 Android 平台上较为老牌的一款第三方图标包,Meeye 凭借综合了 MeeGo 系统图标特色和现代化设计细节的视觉风格受到了不少用户追捧,图标覆盖率方面也毫不含糊,无论是大家日常所使用的国内应用还是国外应用均有适配,总体而言算是喜欢方圆形状图标用户的首选之一。
而这次开发者页页推出的 Meeye is flat 则将此前的 Meeye「一杆子拍扁」,没有了原版 Meeye 图标整体的饱和质感,也去除了图标主体的阴影,风格竟然与前段时间热门的 OneUI 系统图标颇为相似。但仔细对比又不难发现,因为有着 Meeye 良好的基础,Meeye is flat 这套图标包在配色上相比 OneUI 没那么浓重的「糖果味」,也少了很多塑料质感。我甚至觉得这套图标包更适合作为 OneUI 的默认图标。
当然以上都是个人看法,图标包这件事其实也和上面的壁纸一样各有各的看法,目前 Meeye is flat 已经适配了 500+ 图标,一方面,这说明开发者并没有打算将 Meeye 的 2500+ 图标简单拍扁发布,另一方面,有了 Meeye 的口碑背书,相信这一款变平版的图标覆盖未来也会渐渐丰满。
说起相机,大多数人观念中的相机都是全屏启动、然后正正经经地拍上一张好看的照片。要是相机能够以任意大小的悬浮窗口启动,在不干扰我们正常使用手机其他功能的前提下运行,你又会用它来做什么呢?
最近上架酷安的窗口相机就为我们提供了这样一种可能性。窗口相机采用了时下流行的 Material Design 2 设计风格,借助悬浮窗特性,它能让我们以任意大小的窗口启动相机应用,支持拍照和录像,并通过悬浮窗窗口边框的线条颜色来指示相机状态。
更重要的是,除了简单的窗口大小设置,窗口相机还提供了很多自定义设置,如果你想借助这个应用边看小说边走路,不妨开启窗口相机,然后将相机窗口设置为半透明同时「不响应触摸事件」,这样一来就能在专注屏幕内容的同时留意道路情况了。
此外,窗口相机除了支持拍照、录像模式切换还同时支持前后置相机。换句话说,除了上面提到的用来看路的例子,你也可以用来自拍。更多的玩法,还是要大家自己去 探索 和挖掘了。
Product Hunt 精选(2 款)
我从小到大都厌烦于写日记,可能是因为第一次写日记并非自发性,而是被老师布置成家庭作业的缘故。当然,我相信很多朋友工作之后都仍然坚持写日记,这的确是一个非常好的习惯。如果你不再手写日记,可能会选择像 Day One 这样的日记应用。将日记电子化,可以记录下更多类型的信息,更便捷的检索,以及实现内容的长期保留。
Diary Email 是一款别具一格的日记服务,使用时无需注册账号,直接撰写邮件并发送到 private@diaryemail.com 地址即可。如果想要查看自己的日记,那么到 Diary Email 网站上使用自己的邮箱地址登陆。如果你想要分享自己的日记,Diary Email 支持邀请多个朋友。权限控制也非常灵活,只有你发送到 friends@diaryemail.com 地址的日记才能被朋友阅读。
由于我自己不写日记,所以我无法确定 Diary Email 这款产品是否真正符合使用习惯。实际上,由于 Diary Email 基于 Web 和邮件服务,你甚至可以将其当作为云端记事本或者稍后阅读工具来使用。当然,这里更建议坚持写日记的读者 尝试体验。
REMOVE.BG 是一款使用深度学习抠图的服务。继前段时间推出 Photoshop 插件之后,现在又推出了新的跨平台桌面客户端。相比于网页版,桌面客户端的最大特点是实现图片的批量处理。
使用时,你需要先 下载 REMOVE.BG 客户端,然后到官网 申请免费 API KEY。值得注意的是,免费 API KEY 每月仅能调用 50 次,且仅支持小规格图片。对于大尺寸和更高频次的使用,需要付费购买用量。
REMOVE.BG 是我个人非常喜欢,且效果非常好的服务。最常见的一个应用就是证件照更换背景,仅仅需要数秒钟你就可以使用 REMOVE.BG 提供的网页工具制作任意背景的证件照。
Perculia 是 LightScreen 开发者最近上架的一款蓝牙辅助工具,它能够让你在菜单栏一键链接特定的蓝牙设备,功能上有点像我们之前介绍过的 Tooth Fairy。不过,Perculia 不像后者支持为每个蓝牙设备设置单独的快捷键,开发者表示如果之后用户需求大的话会考虑加入这一功能。
除了一键连接功能,Perculia 还支持在菜单栏为每个蓝牙设备创建图标,让你扫一眼就能知道设备的剩余电量。低电量提醒功能也能让你及时为设备充电,避免设备没电影响工作。你可以在 Mac App Store 下载 Perculia,应用完全免费。
mCast 是一款来自国内开发者 @甩甩鸟哥很严肃 的 macOS 播客应用,支持搜索、播放、新节目通知、查看热门播客等基础功能,你也可以通过键盘上的媒体按键控制 mCast 的播放。
目前,mCast 在功能方面还比较简陋,常见的账号同步、下载等功能都还不支持,如果你对同步功能的需求不大,作为 macOS 平台为数不多的播客应用,mCast 还是值得你一试。你可以在 Mac App Store 下载 mCast,应用售价 12 元。
Easy PDF 可以说一款在线版的 PDF 实用工具箱,支持 Word、Excel、PPT、JPG 等常见格式的 PDF 格式互转功能,像 PDF 压缩、OCR 文字识别等更复杂的功能在 Easy PDF 也能找到,虽然这些功能在效果上肯定不能与专业的 PDF 应用相比,但是免费、不限平台、「用完即走」的特性,非常适合对 PDF 编辑需求不大、但是偶尔需要解决相关问题的用户。
本期「一周派评」由 @Snow、@Clyde、@huhuhang 和 @waychane 联合撰写。
Q4: Android游戏开发之Cocos2d-x
游戏的制作如播放电影,拥有四大核心,包括: 导演、场景、图层、演员 。通过它们之间的不同配合,实现丰富多彩的效果。
public class CocosActivity extends AppCompatActivity {
private CCDirector mCcDirector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CCGLSurfaceView ccglSurfaceView =new CCGLSurfaceView(this);
setContentView(ccglSurfaceView);
导演,全局只有一个,单例模式创建
mCcDirector = CCDirector.sharedDirector();
开启绘制(开始拍电影)
mCcDirector.attachInView(ccglSurfaceView);
帧率,每秒刷新的次数,与手机性能有关
//ccDirector.setDisplayFPS(true);
设置帧率为60(记得把帧率文件放进项目中)
//ccDirector.setAnimationInterval(1/60f);
设置横屏
//ccDirector.setDeviceOrientation(CCDirector.kCCDeviceOrientationLandscapeLeft);
屏幕适配,会基于不同屏幕大小进行适配
mCcDirector.setScreenSize(1920,1080);
场景
CCScene ccScene = CCScene.node();
图层
CCLayer ccLayer =CCLayer.node();
给场景添加图层
ccScene.addChild(ccLayer);
导演运行场景
mCcDirector.runWithScene(ccScene);
}
@Override
protected void onResume() {
super.onResume();
mCcDirector.onResume();
}
@Override
protected void onPause() {
super.onPause();
mCcDirector.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mCcDirector.end();
}
1、平移
参数1是移动时间,参数2是目标位置坐标,ccp方法是把坐标转换为cocos2d的坐标
CCMoveTo ccMoveTo = CCMoveTo.action(3,ccp(200,0));
与上不同的是,第2个参数代表水平移动200,竖直不移动,即偏移量
CCMoveBy ccMoveBy =CCMoveBy.action(3,ccp(200,0));
2、旋转
参数1时间,参数2角度,旋转中心是左下角的点,顺时针转
CCRotateBy ccRotateBy =CCRotateBy.action(3,360);
与上不同的是,逆时针转(捷径,顺时针转270==逆时针转90)
CCRotateTo ccRotateTo =CCRotateTo.action(3,270);
3、缩放
参数1时间,参数2X方向缩放,参数3Y方向缩放
CCScaleBy ccScaleBy =CCScaleBy.action(3,2,2);
参数1时间,参数2缩放
CCScaleTo ccScaleTo =CCScaleTo.action(3,2);
4、跳跃(参数1时间,参数2目标点,参数3跳跃高度,参数4跳跃次数)
CCJumpBy ccJumpBy =CCJumpBy.action(3,ccp(0,0),100,3);
5、淡入淡出(参数是时间)
CCFadeIn ccFadeIn =CCFadeIn.action(2);
CCFadeOut ccFadeOut =CCFadeOut.action(2);
6、贝塞尔曲线
点的含义,从point1出发,经过point2,到达endPosition
CCBezierConfig ccBezierConfig =new CCBezierConfig();
ccBezierConfig. controlPoint_1 =ccp(100,50);
ccBezierConfig. controlPoint_2 =ccp(200,200);
ccBezierConfig. endPosition =ccp(300,100);
CCBezierBy ccBezierBy =CCBezierBy.action(2,ccBezierConfig);
7、加速度
CCMoveBy ccMoveBy =CCMoveBy.action(2,ccp(100,100));
渐快渐慢,参数2是加速度
CCEaseIn ccEaseIn =CCEaseIn.action( ccMoveBy ,5);
CCEaseOut ccEaseOut =CCEaseOut.action( ccMoveBy ,5);
8、闪烁(时间,闪烁次数)
CCBlink ccBlink =CCBlink.action(2,10);
9、文字(参1是显示的文字,参2是字体格式(可不填,如""),参数3是字体大小)
CCLabel ccLabel = CCLabel.labelWithString("显示文字","STCAIYUN.TTF",20);
设置文字颜色
ccColor3B ccColor3B =ccc3(100,50,0);
ccLabel.setColor(ccColor3B );
设置文字位置
ccLabel.setPosition(ccp(width,height));
重置文字
ccLabel.setString("显示文字");
颜色渐变(从本来的文字颜色渐变到设置的字体颜色)
CCTintBy tintBy =CCTintBy.action(3,ccc3(50,-50,100));
10、循环(参数是动画效果)
CCRepeatForever ccRepeatForever =CCRepeatForever.action(action);
11、延迟(参数是时间)
CCDelayTime ccDelayTime =CCDelayTime.action(1);
12、反转(将一个动画倒序执行)
ccJumpBy.reverse();
13、同时(参数是不定长度数组)
CCSpawn ccSpawn =CCSpawn.actions(action1,action2);
14、连续动画(参数是不定长度数组)
CCSequence ccSequence =CCSequence.actions(action1,action2, ccCallFunc ");
15、反射(执行一个动画方法)
CCCallFunc .action(this," anim ");
被反射的执行方法
public void anim (){}
16、逐帧动画
public void walk(){
存放帧动画的集合
ArrayList ccSpriteFrames =new ArrayList();
String format="z_1_%d.png"; // %d和%02d代表整数,用i来取代,%d只取代i,%02d会补0
for(int i=1;i10;i++){
CCSprite ccSprite =CCSprite.sprite(String.format(format,i));
CCSpriteFrame ccSpriteFrame =ccSprite.displayedFrame();
ccSpriteFrames.add(ccSpriteFrame );
}
参数1是动画名称,参数2是每一帧停留的时间,参数3是帧动画集合
CCAnimation ccAnimation =CCAnimation.animation("walk",.2f,ccSpriteFrames);
参数2是否持续执行动画,如果想执行无限循环,可以使用CCRepeatForever
CCAnimate ccAnimate =CCAnimate.action(ccAnimation,false);
mCcSprite.runAction(ccAnimate);
}
17、隐藏
CCHide ccHide =CCHide.action();
18、显示
CCShow ccShow =CCShow.action();
19、跟随(参数是跟随的对象)
CCFollow ccFollow =CCFollow.action(mCCSprite);
20、执行动画(上述皆是)
mCcSprite.runAction(action);
21、工具类使用
CGPointUtil .distance(point1,point2); //计算两点距离
获取声音引擎
SoundEngine engine =SoundEngine.sharedEngine();
参数1是activity,SurfaceView创建时存入,参2是播放资源id(res\raw),参数3是否循环播放
engine.playSound(CCDirector.theApp,1,true);
手动停止音乐播放
engine.realesAllSounds();
生命周期跟随Activity
SoundEngine.sharedEngine().resumeSound();
SoundEngine.sharedEngine().pauseSound();
SoundEngine.sharedEngine().realesAllSounds();
预加载播放音乐,避免播放音乐时没声音
SoundEngine.sharedEngine().preloadEffect();
SoundEngine.sharedEngine().preloadSound();
1、创建
CCSprite mCcSprite =new CCSprite(" pic.jpeg ");
2、锚点(图片上的一点,类似图钉,对应图片显示的位置)
CGPoint cgPoint =ccp(0,0);
mCcSprite.setAnchorPoint(cgPoint);
3、位置
mCcSprite.setPosition(cgPoint);
4、属性(缩放、翻转、透明度)
ccSprite.setFlipX(true); 水平翻转
ccSprite.setOpacity(255); 透明度
ccSprite.setScale(2); 缩放
5、移除(在Layer里面操作)
mCcSprite.removeSelf(); //精灵从图层中移除
( Layer )this.removeSelf(); // 移除整个图层
6、尺寸
CGSize cgSize =CCDirector.sharedDirector().winSize();
1、游戏暂停(图层静止,将不再响应任何事件)
MapLayer.this.onExit();
注意:因为图层不再响应任何事件,所以暂停按钮应该加在暂停图层的父图层上
this.getParent().addChild(new PauseLayer());
2、游戏继续(图层恢复动态,接收点击事件)
MapLayer.this.onEnter();
通用的游戏继续方法
CCDirector.sharedDirector().getRunningScene().onEnter();
3、定时器
CCScheduler ccScheduler =CCScheduler.sharedScheduler();
通过反射执行方法
ccScheduler.schedule(" onScheduler ",this,2,false);
方法声明为公开类型
public void onScheduler (float f){ //实现具体逻辑
};
4、进度条
CCProgressTimer ccProgressTimer =CCProgressTimer.progressWithFile(" image/pic.jpeg "); //多层目录
ccProgressTimer.setPosition(width,height);
this.getParent().addChild(ccProgressTimer); //具体加到什么图层,看情况
ccProgressTimer.setScale(0.6f);
ccProgressTimer.setPercentage(2);
设置显示样式(垂直,水平)-(最后2个字母,left,right,代表进度条从左往右)
ccProgressTimer.setType(CCProgressTimer.kCCProgressTimerTypeHorizontalBar LR );
进度条外框 等元素,都作为精灵与进度条同级加入图层
this.getParent().addChild(sprite);
Android坐标系的(0,0)在左上角,而Cocos2d-x坐标系的(0,0)在左下角。所以在处理Android的点击事件MotionEvent时,需要进行坐标体系的转换。
CGPoint cgPoint = convertPrevTouchToNodeSpace (event);
监听图片的点击范围,自定义封装点击事件
CGRect .containsPoint( mCcSprite.getBoundingBox() , cgPoint );
CCMenu ccMenu =CCMenu.menu();
CCSprite normalSprite =CCSprite.sprite("pic_1.jpeg"); //正常情况下显示的图片
CCSprite selectSprite =CCSprite.sprite("pic_2.jpeg"); //按下时显示的图片
注意:反射的方法需要使用pulbic修饰,参数指target,直接传this,它不是上下文Context
CCMenuItemSprite itemSprite =CCMenuItemSprite.item( normalSprite , selectSprite , this ," onCLick ");
ccMenu.addChild( itemSprite );
this.addChild(ccMenu); //菜单添加到图层
public void onCLick (Object obj){} //点击事件响应方法,必须用public修饰以及带参数
setIsTouchEnabled(true); //打开图层点击事件,默认关闭
模仿任何天气现象,只需要改这一句,剩下的不变
CCParticleSystem ccParticleSystem= CCParticleSnow.node();
设置雪花大小
ccParticleSystem.setScale(2);
设置飘落的速度
ccParticleSystem.setSpeed(10);
设置雪花的图片
ccParticleSystem.setTexture(CCTextureCache.sharedTextureCache().addImage("snow.png"));
this.addChild(ccParticleSystem,1);
停止粒子系统(下雪)
ccParticleSystem.stopSystem();
1、加载地图
ArrayList mCGPoints = new ArrayList();
CCTMXTiledMap mCctmxTiledMap = CCTMXTiledMap.tiledMap(" map.tmx ");
mCctmxTiledMap.setAnchorPoint(ccp(0.5f,0.f));
mCctmxTiledMap.setPosition(width,height);
CCTMXObjectGroup cctmxObjectGroup= mCctmxTiledMap.objectGroupNamed("road");
ArrayListHashMapString,String objects = cctmxObjectGroup.objects;
for(HashMapString,String hashMap:objects){ //加载地图的坐标(需要经过的坐标点)
Integer x =Integer.parseInt(hashMap.get("x"));
Integer y =Integer.parseInt(hashMap.get("y"));
CGPoint cgPoint =ccp(x,y);
mCGPoints .add(cgPoint); }
this.addChild(mCctmxTiledMap);
在地图上添加精灵
mCCSprite.setPosition(mCGPoints.get(0));
mCctmxTiledMap.addChild(mCCSprite);
地图跟随精灵的移动而移动
CCFollow ccFollow =CCFollow.action(mCCSprite);
mCctmxTiledMap .runAction(ccFollow);
2、地图随手指触摸事件移动(重写触摸方法)
@Override
public boolean ccTouchesMoved(MotionEvent event) {
手指拖拽时,地图随手指移动
mCctmxTiledMap.touchMove(event,mCctmxTiledMap);
地图移动,地图上所有精灵都随之移动(地图是父亲,精灵是孩子)
mCctmxTiledMap.addChild(mCCSprite);
return super.ccTouchesMoved(event);
}
创建场景
CCScene ccScene =CCScene.node();
场景添加图层
ccScene.addChild(ccLayer);
场景切换特效
CCJumpZoomTransition ccJumpZoomTransition =CCJumpZoomTransition.transition(2,ccScene);
导演切换场景
CCDirector.sharedDirector(). replaceScene (ccJumpZoomTransition);
CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。用法和ArrayList相近。
CopyOnWriteArrayList copyOnWriteArrayList = new CopyOnWriteArrayList();
setIsTouchEnabled(true); //打开点击事件
@Override
public boolean ccTouchesBegan (MotionEvent event) {
return super.ccTouchesBegan(event);
}
@Override
public boolean ccTouchesCancelled (MotionEvent event) {
return super.ccTouchesCancelled(event);
}
@Override
public boolean ccTouchesMoved (MotionEvent event) {
return super.ccTouchesMoved(event);
}
@Override
public boolean ccTouchesEnded (MotionEvent event) {
return super.ccTouchesEnded(event);
}
描述:UI频繁刷新,造成主线程的堵塞或挂起
private CCGLSurfaceView mCCGLSurfaceView;
mCCGLSurfaceView = (CCGLSurfaceView) CCDirector.sharedDirector().getOpenGLView();
mCCGLSurfaceView.queueEvent(new Runnable() {
@Override
public void run() { //切换到主线程
}
});
描述:CCSprite运行动画时,没有表现出任何视觉效果。
原因:一个动画只能被一个CCSprite执行一次,执行完成后,原来的动画会失效。
解决:每次执行的动画,都需要重新生成,即使是相同的动画效果。
缓存:CCDirector.sharedDirector().purgeCachedData();
Q5: 全球最受欢迎的10款安卓游戏
根据谷歌的统计数据,以下10款安卓 游戏 最受全球手游爱好者青睐。
【第十】:暗影格斗3(Shadow Fight 3)
暗影格斗3是Nekki在2017年开发的一款安卓格斗 游戏 ,从技术上讲并不是之前暗影格斗2的续集。
相比起系列的第二部,许多设计跟上了时代的发展,比如说删除了体力系统,让你可以随时随地挑战,以及更新了画面和增加了新的可自定义内容。
在动作设计这一块,暗影格斗3是顶尖的(就手机 游戏 而言), 游戏 吸收了许多格斗 游戏 的精髓,对武器的起手和距离,都有十分精确的判定,打击感也异常优秀,是一款设计出色的手游
但在面世后,差评也很多,概括起来主要分为以下几个方面:
1、受身设计的非常糟糕。倒地之后,你基本上毫无还手之力,只能挨打,在高端局必死无疑。
2、各种武器之间的平衡没有做好。每次一输就会疯狂暗示你氪金,于是在输几次之后,你的热情就会被耗尽,一切索然无味。
3、玩到一定阶段就感觉好像不是人在玩 游戏 ,而是 游戏 在玩人。要你充钱的感觉太露骨,让人感觉如食鸡肋,索然无味。
但这个 游戏 的优点比起缺点来说可谓小巫见大巫,基本上就是前面所说的优点可以忽略不计。
【第九】:FIFA 足球世界(FIFA Soccer)
尽管EA Sports已经开发出了在PSP、Xbox、任天堂和PC等 游戏 机上玩精彩足球 游戏 的方式。
但在有控制的移动设备上,这是一种截然不同的体验。
任何人不会否认标准的国际足联 游戏 是一个精彩的 游戏 ,它带来了所有的兴奋,快节奏和戏剧的结果。
游戏 卡面做工精良,用着喜欢的球员,简单打一些操作配合,容易入门。但也有下面小缺点:
1、模型。人物建模造型太差,球星基本和现实中的长相相差太远。
2、手感。感觉这是最影响 游戏 体验的了。控制球员跑动的时候总不顺手,特别是在防守和进攻这种关键时刻出现了问题导致失利,真的会把人逼急。
但总的来说,FIFA 足球世界确实是一款横行手游界多年的老爷爷,没有功劳也有苦劳。
【第八】:金币大师(Coin Master)
以色列开发商Moon Active研发的金币大师(Coin Master)是一款iOS/Android 游戏 ,人们通过旋转插槽来获得硬币、盔甲和枪支,这样他们就可以入侵村庄,袭击村庄,并建造自己的维京村庄。
玩家可以穿越时间和神奇的土地,成为海盗、嬉皮士、国王、勇士和维京人。
这款 游戏 使用脸书这样的社交媒体平台,将玩家与朋友联系起来,鼓励更多人参与 游戏 。
每小时有五个自由转弯,这样我们就可以创造足够的硬币来购买下一个房子,完成房子需要几个小时和旋转,有时会让人沮丧。
【第七】:精灵宝可梦Go(Pokemon GO)
《Pokemon Go》是由Nintendo(任天堂)、The Pokemon Company(口袋妖怪公司)和谷歌Niantic Labs公司联合制作开发的现实增强(AR)宠物养成对战类RPG手游。
就像在卡通系列中一样,玩家(也称为口袋妖怪训练师)必须收集被称为口袋妖怪的类动物虚构生物。在这里,玩家必须在周围漫游才能找到一个口袋妖怪(它隐藏在某些GPS坐标中)。
在玩家使用他们的Pokemon与其他玩家进行战斗之后,获胜的玩家有机会接手looser的Pokemon,但这在大多数情况下都是不成功的。
渐渐地,通过赢得战斗新的联盟被解锁,从而提高水平。知道2018年夏天,第一个真正的社交功能被添加:好友列表。
一旦你交换了代码并收到请求,你就可以看到你朋友最近捕获的口袋妖怪,并可以看到他们的等级,包括他们输了多少场,他们捕获了多少口袋妖怪,他们玩了多少场比赛。
这让该款手游的受关注度直线上升。
【第六】:模拟城市(Simcity BuildIt)
SimCity BuildIt的目标与其他特许城市建设 游戏 相同:开发和扩展一个繁荣的虚拟城市。
作为市长,你要铺设公路,修建建筑物、商店和工厂,收税,安排与其他城镇的关系。
你还需要为你的居民,市民提供服务,当选择变得容易-电力,水,废水治疗,卫生,教育变得容易。
如果你忽视了扩建设施和一般的城镇维护,你的市民搬走了,你就失去了税收。
【第五】:移动传奇·轰炸(Mobile Legends Bang Bang)
移动传奇:Bang Bang,是一个免费的移动在线竞技场(MOBA),提供了一个多样化的角色团队、快速的配对和快节奏的战斗,可以在移动中快速进行 游戏 。
世界各地的参与者都与其他战队结合在一起,在他们的性格选择旁边展示他们的国旗。 游戏 还包括 游戏 社区,包括内置的实时流媒体、从播放器内部观看的流媒体工作室,以及一个电子 体育 模块,使用户可以观看高水平的比赛。
总的来说,这种被动的RPG从作战系统到界面都能给人一种愉快而舒缓的印象。
这是一款很棒的手机 游戏 。
【第四】:狂野飙车9:竞速传奇(Asphalt 9-Legends)
Gameloft的狂野飙车 游戏 通常表现出色,以令人惊叹的视觉效果、快节奏的赛车过程、实现生活中世界上最快 汽车 得简单控制,打动休闲手机 游戏 玩家。
狂野飙车8自2013年起就在Android、iOS和Windows用户上播放。而狂野飙车9:竞速传奇在图形制作方面更胜一筹:车辆、周围环境和气候细节的感觉令人惊叹,享受这场比赛绝对是一种乐趣。
【第三】:部落冲突(Clash of Clans)
Clash of Clans是一款非常不错的策略塔防类手游。 游戏 有着多种玩法,建造各种塔防武器,培养各种兵种,增强力量。通过得到一个村庄,做出所有重大决定成为它的首领。
你必须升级你的村庄的独立士兵,并且必须通过抢劫进入另一个村庄耕种和积累灵丹丹和黄金。这个 游戏 使人们能够思考和管理的战略技能,因为它包含很多计算的风险。
它中不仅支持pve和pvp对战模式,同时还添加了联合作战等集团军模式。经典重现,带你领略人类战争的发展史,从刀耕火种到冷兵器时代的过渡,以及现代战争的 科技 。
【第二】:糖果传奇(Candy Crush Saga)
这是一款玩得最多的 游戏 ,也是最容易上瘾的 游戏 。
糖果传奇有许多变种版本,但都基于其衍生变化而来。根据估算,全球玩家在《糖果传奇》中玩了超过1.1万亿局 游戏 ,共清除350万亿个糖果。
你别以为这个 游戏 看起来简单,网络上关于这款 游戏 的通关秘籍可是一点也不比大型 游戏 的少。
【第一】:绝地求生(PUBG)
2019年以来,绝地求生一直在不断改进。
僵尸 游戏 越来越成为大热门,受喜欢程度呈上升趋势,与使用鼠标相比,在智能手机上浏览 游戏 可能很困难,因为它们将所有按钮分散在同一屏幕上。
瞄准并不简单,但这款手游有一个精确的系统,可以让用户放大目标,获得更好的瞄准效果。
它可以单独进行,也可以与一个合作伙伴或多人团队共同奋战。
玩家也可以在多人 游戏 中与团队成员交谈,事实证明它极易上瘾,却难以放下。






