求一个原先在ios系统上的水墨风仙剑奇侠传手游ios

下次自动登录
合作网站账户登录:
您的位置:
游戏风格:中国风,武侠,横版
大 小:58.65MB
更新时间:
版 本:1.0.2.0
《剑雨ol》是一款以中国风为背景的ARPG手游,游戏中有着鲜明的职业特点,拳手拳拳入肉的真是体感,以及充满刀光剑影的整个战斗画面,还支持实时对战同步PK等一些线上竞技环节,相信喜欢动作手游的你不妨来体验一下这款横版RPG手游吧!
视频 | 图片
水墨武侠《剑雨》在近日终于开测,从小看武侠小说长大的小编早早就下载好游戏,开测第一时间就进入了游戏,开始了在武侠世界的征程。 好多人啊~~~但是貌似一开始礼包有点问题,玩家用不了。不过还好,很快问题就得到了解决,给运营商32个赞! 跟随着指引,小编在副本与场景人物间徘徊。终于慢慢地,小编感觉到战力略显不足,竟然有点招架不住副本的渣渣,小编一怒之下用元宝参悟10连。 运气不错,抽到个神功,血煞魔掌!再加上礼包赠送的神...
剑雨这款武侠手游,人物变强方式较多,有锻造、武学、心法等等,各系统也比较独立,如何取舍才能快速变强,这是需要好好探究的。下面是本人的一些经验总结,高玩还请轻喷。 游戏初始...
简约暗黑水墨风,再现传奇江湖情。在如今众多应接不暇的动作手游中,《剑雨》以其独树一帜的水墨画风、强大的武学系统脱颖而出。 小编今天有幸试玩了下这款水墨武侠RPG,特此把自己的...
随着《剑雨》资料片的逐步开放,《剑雨》三测版本新功能和新玩法都陆续展现在友友们的面前。如:丰富的武学系统、独特的心法石碑系统、庞大的世界观、激烈的竞技场等,如此丰富的新玩...
各位亲爱的友友们: 自从上周发布《剑雨》新功能抢鲜看第一季后,大家反映非常热烈,向小编追问更多的关于新功能的内容,小编马上赶去《剑雨》研发部找主策划,在将近3小时的软磨硬泡...
在主页面点击图鉴系统。可以进入武功图鉴系统 备注:只能显示参悟过的武功,否则无法查看具体武功特性...
玩家可以在武斗场进行同步PVP,每场PVP胜利后有丰厚奖励。 首先在主页面右上角找到武斗场二当家闻踪 点击进去进入武斗场场景,点击人物就可以攻击。...
兵器谱为玩家实力排行榜,每天可以领取固定奖励。...
玩家可到捕快领取追捕任务,追杀四大恶人(恶名昭彰的玩家),成功击杀后有丰厚奖励。 首先在主页面找到捕快,点击追捕。 然后会看到恶人列表,点击恶人就可进行追捕...
14:38:30 来源:手机网游第一门户 手游之家剑雨专区 上百种绝招和内功自由组合,各种绝招相性相克,如闪避、集中、金钟罩、破剑式各种绝招CD冷却需时不同,形成一个百家争鸣的真实江...
一个篱笆三个桩,一个好汉三个帮!行走江湖,怎么少得了结识一帮难兄难弟? 首先要自己创建或者加入一个帮会 成功加入后可以看到本帮信息 帮派系统主要玩法有两种; 一:进香,3种香可...
《剑雨》成就系统可以帮助玩家在成长过程中获取丰厚资源,让玩家在江湖闯荡过程中快速问鼎天下! 首先在主页面点击成就按钮,进入成就主页面。...
《剑雨》副本系统指的是主线副本,玩家可以通过剧情了解游戏并从中获取更多的资源。 步骤: 一、点击主页面剧情按钮进入主线副本; 二、选择不同关卡进入战斗,不同关卡战利品和通关次...
《剑雨》拥有强大而完善的日常任务系统,满足广大玩家们的需求! 步骤: 一、在主页面点击右上角活动按钮,进入任务页面。 二、按照任务的完成度可以领取珍贵的领悟点。...
剑雨锻造系统简单明了,需要锻造的装备目前开放两种:武器和衣服。 锻造手段目前版本开放是强化功能。强化效果=装备初始强化+锻造强化 强化步骤: 一、在主地图右下方找到PNC铁匠铺掌柜...
绝招:战斗中使用,影响角色输出和加成; 内功:战斗前装备,影响角色血量和输出 那如何学习武功呢? 首先到主页面找到女侠紫鸢,点击参悟; 可以用领悟点或者元宝参悟武功 恭喜你!参...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的拳法。 白虎五式(新手必选绝招) 武功简介:呈阳性,主要手段就攻击敌人穴道使攻击力降低...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的刀法。 三绝斩 武功简介:刀法,呈中性,人绝、气绝、天绝,魂断三绝,威力相当了得。 武功...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的剑法。 狂风快剑术 武功简介:剑法,呈中性,剑势中隐含凌厉风声,使一剑似一剑,激起风声犹如狂风巨浪一般。 武功特性:对方无法闪避和格挡 紫英剑法 武功简介:剑法,呈中性,紫气东来,英雄遁走,剑气二。 武功特性:对方无法闪避...
水墨武侠《剑雨》在近日终于开测,从小看武侠小说长大的小编早早就下载好游戏,开测第一时间就进入了游戏,开始了在武侠世界的征程。 好多人啊~~~但是貌似一开始礼包有点问题,玩家用不了。不过还好,很快问题就得到了解决,给运营商32个赞! 跟随着指引,小编在副本与场景人物间徘徊。终于慢慢地,小编感觉到战力略显不足,竟然有点招架不住副本的渣渣,小编一怒之下用元宝参悟10连。 运气不错,抽到个神功,血煞魔掌!再加上礼包赠送的神...
剑雨这款武侠手游,人物变强方式较多,有锻造、武学、心法等等,各系统也比较独立,如何取舍才能快速变强,这是需要好好探究的。下面是本人的一些经验总结,高玩还请轻喷。 游戏初始...
《剑雨》拥有强大而完善的日常任务系统,满足广大玩家们的需求! 步骤: 一、在主页面点击右上角活动按钮,进入任务页面。 二、按照任务的完成度可以领取珍贵的领悟点。...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的拳法。 白虎五式(新手必选绝招) 武功简介:呈阳性,主要手段就攻击敌人穴道使攻击力降低...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的刀法。 三绝斩 武功简介:刀法,呈中性,人绝、气绝、天绝,魂断三绝,威力相当了得。 武功...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的剑法。 狂风快剑术 武功简介:剑法,呈中性,剑势中隐含凌厉风声,使一剑似一剑,激起风声犹如狂风巨浪一般。 武功特性:对方无法闪避和格挡 紫英剑法 武功简介:剑法,呈中性,紫气东来,英雄遁走,剑气二。 武功特性:对方无法闪避...
《剑雨》武功体系非常庞大,而其中的绝招更是种类多样多彩,今天小编给大家分享一下绝招中的辅助招式。 紫焰决 武功简介:辅助性的武功,紫气东来,无煞横溢,攻击强。 武功特性:增加...
武功在《剑雨》是一个非常庞大的系统,江湖中传言这么一句话,没有最强的武功,只有最强的侠客。如何能够参透这里面的道理,将是武林中人永远的话题。今天武功解密系列给大家解密的是...
各位亲爱的友友们: 自从上周发布《剑雨》新功能抢鲜看第一季后,大家反映非常热烈,向小编追问更多的关于新功能的内容,小编马上赶去《剑雨》研发部找主策划,在将近3小时的软磨硬泡...
在主页面点击图鉴系统。可以进入武功图鉴系统 备注:只能显示参悟过的武功,否则无法查看具体武功特性...
玩家可以在武斗场进行同步PVP,每场PVP胜利后有丰厚奖励。 首先在主页面右上角找到武斗场二当家闻踪 点击进去进入武斗场场景,点击人物就可以攻击。...
兵器谱为玩家实力排行榜,每天可以领取固定奖励。...
玩家可到捕快领取追捕任务,追杀四大恶人(恶名昭彰的玩家),成功击杀后有丰厚奖励。 首先在主页面找到捕快,点击追捕。 然后会看到恶人列表,点击恶人就可进行追捕...
14:38:30 来源:手机网游第一门户 手游之家剑雨专区 上百种绝招和内功自由组合,各种绝招相性相克,如闪避、集中、金钟罩、破剑式各种绝招CD冷却需时不同,形成一个百家争鸣的真实江...
一个篱笆三个桩,一个好汉三个帮!行走江湖,怎么少得了结识一帮难兄难弟? 首先要自己创建或者加入一个帮会 成功加入后可以看到本帮信息 帮派系统主要玩法有两种; 一:进香,3种香可...
《剑雨》成就系统可以帮助玩家在成长过程中获取丰厚资源,让玩家在江湖闯荡过程中快速问鼎天下! 首先在主页面点击成就按钮,进入成就主页面。...
《剑雨》副本系统指的是主线副本,玩家可以通过剧情了解游戏并从中获取更多的资源。 步骤: 一、点击主页面剧情按钮进入主线副本; 二、选择不同关卡进入战斗,不同关卡战利品和通关次...
剑雨锻造系统简单明了,需要锻造的装备目前开放两种:武器和衣服。 锻造手段目前版本开放是强化功能。强化效果=装备初始强化+锻造强化 强化步骤: 一、在主地图右下方找到PNC铁匠铺掌柜...
绝招:战斗中使用,影响角色输出和加成; 内功:战斗前装备,影响角色血量和输出 那如何学习武功呢? 首先到主页面找到女侠紫鸢,点击参悟; 可以用领悟点或者元宝参悟武功 恭喜你!参...
《剑雨》是一款以中国风为背景的ARPG手游,游戏中有着鲜明的职业特点,拳手拳拳入肉的真是体感,以及充满刀光剑影的整个战斗画面,还支持实时对战同步PK等一些线上竞技环节,相信喜欢动作手游的你不妨来体验一下这款横版RPG手游吧! 《剑雨OL》以明朝为参考背景的朝代,一场朝廷重臣的灭门血案将昇平盛世转为乱世,即使神通广大的锦衣卫也无法找到元凶,江湖一时为之沸腾,各方新兴势力纷纷掘起,其中最令人瞩目的莫属神武坛。 玩家将化身...
京ICP备号-1 京公网安备 86&
&&北京手游达趣科技有限公司 版权所有小师妹手游ios版
v1.4.0在手机上看
/ 策略棋牌 /
/ 手机游戏 /
/ 手机游戏 /
/ 手游存档 /
/ 手机游戏 /
小师妹手游ios版是一款以为题材的PRG手游,画面中国风,人物Q版。游戏首创丰富多彩的师妹成长系统,玩家能与小师妹一起修炼炫酷的武侠技能,共骑霸气的坐骑闯荡江湖,争夺至尊的武林霸主之位。快来和你心中的小师妹,一起浪迹天涯吧!
小师妹手游游戏特色: 1.最漂亮中国风画面:古香古色,中国水墨风画面赏心悦目; 2.最曲折武侠情节:武林江湖故事,快意恩仇力战天下豪侠; 3.最霸气宠物坐骑:霸气坐骑助阵,给力属性助你战无不胜; 4.最丰厚好礼相送:海量豪礼相送,勇闯副本傲视群雄。
小师妹ios版,更新日志: 版本 v1.4.0 日期
千里姻缘一线牵,美妙婚姻长白头; 天命非凡龙之命,王者转世虚待位; 霸气坐骑携美游,逍遥在世赛神仙; 后宫佳丽三千人,不及师妹俏又乖。
【新增系统】 1、结婚系统开放,角色达到30级即可与心爱的人情定终身。 2、开放天命系统,49级或者至尊2即可开放,六大天命各具特色,天命任切换,属性全加成。 3、开放五灵属性宝石系统,在天命上可激活升级五灵宝石。 4、燃烧洞窟活动开放,每天13:00和23:30各开放一场,激情PK欢迎体验。 5、周环任务开启,角色达到37级即可参与,经验、天命材料、五灵宝石拿不停。
【系统调整】 1、八卦迷宫降低到达20层的难度。取消八卦密室地图,部分楼层减少错误出口数量,已走过的楼层会有旗子标识正确传送阵。能够获得积分的魔教信使转移到第3,7,11,15,20层的侧门地图中。 2、强化套装特效新增全身+6效果,其他效果全面优化,更加华丽。 3、下午的矿战1.5倍奖励时间改为17:30――18:00。 4、优化精炼与升品系统,现在师妹装备、坐骑装备、背包装备都可以在统一界面操作了。
【数值调整】 1、战斗力算法优化,玩家总战斗力会因为调整而发生变化。 2、怪物数值调整,后期怪物加入五灵属性。 3、天牢怪物数值调整,高级天牢BOSS加入五灵属性。 4、活跃度、天梯奖励调整,加入五灵宝石产出。 5、职业平衡调整,修正各职业攻速,修正天玄暴击BUG。
编辑点评: 风情各异的小师妹,满足玩家们的一切幻想。
小师妹手游ios版
下载帮助网侠软件站软件均来自互联网, 如有侵犯您的版权, 请点击网站底部在线QQ进行联系。
1.网侠软件站所有软件和游戏都经过严格安装检测,保证不会有任何病毒木马等信息,请大家放心使用;
2.大家在安装软件的时候注意每个步骤,注意包含安装插件信息,推荐使用下载本站软件以获取最佳的下载速度。
3.如果您觉得网侠还不错, 以便下一次的访问.
4.网侠QQ群:应用软件交流群: 手机游戏交流:Cocos2d-x 手游聊天系统Demo实现&转载请注明:IT_xiao小巫& &本篇博客给大家分享的是一个手游聊天系统,笔者也是第一次使用Cocos2d-x来实现这样一个模块,其中有很多不清楚不明白的地方都是通过自己不断摸索实现的,前面笔者对聊天系统做的简单的需求分析,只是对聊天的一些元素进行的说明还不太够专业。本篇博客会给大家介绍如何实现一个手游聊天Demo,会从代码层面上给大家做相关的说明,如有不对或者错漏的地方请各位明确指出并纠正。首先来给大家看一下动态效果图:本篇博客内容大纲:1. 加载Cocostudio制作的UI2. Button的触摸事件监听3. ListView添加列表项并设置列表点击事件4. 富文本实现(可显示颜色文字和图片、动画)5. 文本输入框实现(解决pc键盘无法删除字符的bug)6. 动态往ListView添加列表项一、加载Cocostudio制作的UI& 笔者所分享的这个Demo是通过Cocostudio的UI编辑器制作的,童鞋们也可自己制作更加好看的UI,不过一般都会有美工帮我们做好让我使用的。如下图所示:& UI制作完之后,导出项目,然后把资源复制到我们项目的res目录下,笔者这里是把ChatUI_1复制到了res下,然后我们使用Lua代码实现加载json文件到我们的程序中去:ChatScene.widget = ccs.GUIReader:getInstance():widgetFromJsonFile( &ChatUI_1/ChatUI_1.json& )我们在编辑器添加了多个对象:WorldPanel、PartyPanel、ChatPanel分别对应世界、公会、私聊三个板块,板块下面对应其相应的子节点:WordList、PartyList、ChatList。我们需要在程序中找到它们:--[[============================findViews()找到UI控件============================]]--function ChatScene.findViews() ChatScene.widget = ccs.GUIReader:getInstance():widgetFromJsonFile( &ChatUI_1/ChatUI_1.json& ) ChatScene.widget:setPosition( cc.p( 40, 40 ) ) loadListViewItemFromJson() -- 获得UI界面上的3个按钮 worldButton = ChatScene.widget:getChildByTag(6) partyButton = ChatScene.widget:getChildByTag(7) chatButton = ChatScene.widget:getChildByTag(8) -- 获得三个每个按钮对应的三个面板 wordPanel = ChatScene.widget:getChildByTag(5) partyPanel = ChatScene.widget:getChildByTag(9) chatPanel = ChatScene.widget:getChildByTag(10) -- 获得每个面板的ListView worldList = wordPanel:getChildByTag(13) partyList = partyPanel:getChildByTag(14) chatList = chatPanel:getChildByTag(15) -- 获得输入框 inputBox = ChatScene.widget:getChildByTag(11) sendButton = ChatScene.widget:getChildByTag(12) dialog = ChatScene.widget:getChildByTag(20) chat = dialog:getChildByTag(21) lahei = dialog:getChildByTag(22) closeButton = dialog:getChildByTag(27)end& 每个UI对象有相应的Tag属性,我们可以通过找到其父节点,然后调用getChildByTag传进tag的值找到控件。只有找到这些控件,我们才能去使用它。二、Button的触摸事件监听& 笔者这个demo,通过监听“世界”、“公会”、“私聊”三个按钮来分别切换不同的板块,按钮的触摸监听事件很简单:-- 设置按钮监听事件worldButton:addTouchEventListener(touchEvent)partyButton:addTouchEventListener(touchEvent)chatButton:addTouchEventListener(touchEvent)--[[touchEvent触摸事件回调方法]]--local function touchEvent( sender, eventType ) if sender:getTag() == TAG_WORLD_BUTTON then
wordPanel:setVisible(true)
partyPanel:setVisible(false)
chatPanel:setVisible(false)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_WORLD ) elseif sender:getTag() == TAG_PARTY_BUTTON then
partyPanel:setVisible(true)
wordPanel:setVisible(false)
chatPanel:setVisible(false)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_PARTY ) elseif sender:getTag() == TAG_CHAT_BUTTON then
partyPanel:setVisible(false)
wordPanel:setVisible(false)
chatPanel:setVisible(true)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_CHAT )end以上面这种方式就可以实现切换三个板块了。三、ListView添加列表项并设置列表点击事件&我们可以看到效果图里面每个板块下面有对应的列表,它是使用Cocos2d-x UI中的ListView所呈现的。&笔者感觉使用ListView比较麻烦,这里笔者给出相应的使用方法供大家参考:--首先我们为ListView提供三组数据-- 初始化三组数据 local array = {} for i = 1, 20 do
array[i] = string.format(&请叫我巫大大%d&, i - 1) end local array1 = {} for i = 1, 20 do
array1[i] = string.format(&公会开放啦%d&, i - 1 ) end local array2 = {} for i = 1, 20 do
array2[i] = string.format(&私聊列表项%d&, i - 1 ) end--设置默认模型-- 创建模型 local default_button = ccui.Button:create(&cocosui/backtotoppressed.png&, &cocosui/backtotopnormal.png&) default_button:setName(&Title Button&) -- 创建默认item local default_itme = ccui.Layout:create() default_itme:setTouchEnabled(true) default_itme:setContentSize(default_button:getContentSize()) default_button:setPosition(cc.p( default_itme:getContentSize().width / 2.0, default_itme:getContentSize().height / 2.0 )) default_itme:addChild(default_button) -- 设置模型 worldList:setItemModel(default_itme)--添加自定义项-- 获得数组的大小 local count = table.getn(array) print(&count:&..count) -- 添加自定义item for i = 1, count do
-- 创建一个Button
local custom_button = ccui.Button:create(&cocosui/button.png&, &cocosui/buttonHighlighted.png&)
-- 设置Button名字
custom_button:setName(&Title Button&)
--设置按钮使用九宫(scale9)渲染器进行渲染
custom_button:setScale9Enabled(true)
-- 设置内容尺寸
custom_button:setContentSize(default_button:getContentSize())
-- 创建一个布局
local custom_item = ccui.Layout:create()
-- 设置内容大小
custom_item:setContentSize(custom_button:getContentSize())
-- 设置位置
custom_button:setPosition(cc.p(custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0))
-- 往布局中添加一个按钮
custom_item:addChild(custom_button)
-- 往ListView中添加一个布局
worldList:addChild(custom_item) end--每一项数据-- 设置item data items_count = table.getn(worldList:getItems()) for i = 1, items_count do
-- 返回一个索引和参数相同的项.
local item = worldList:getItem( i - 1 )
local button = item:getChildByName(&Title Button&)
local index = worldList:getIndex(item)
button:setTitleText(array[index + 1]) end--设置ListView的点击事件和滚动事件-- 设置ListView的监听事件worldList:addScrollViewEventListener(scrollViewEvent)worldList:addEventListener(listViewEvent)-- ListView点击事件回调local function listViewEvent(sender, eventType) -- 事件类型为点击结束 if eventType == ccui.ListViewEventType.ONSELECTEDITEM_END then
print(&select child index = &,sender:getCurSelectedIndex())
if dialog:isVisible() == true then
dialog:setVisible(false)
ChatScene.showDialog()
end endend-- 滚动事件方法回调local function scrollViewEvent(sender, eventType) -- 滚动到底部 if eventType == ccui.ScrollviewEventType.scrollToBottom then
print(&SCROLL_TO_BOTTOM&)
-- 滚动到顶部 elseif eventType == ccui.ScrollviewEventType.scrollToTop then
print(&SCROLL_TO_TOP&) endend四、&富文本实现(可显示颜色文字和图片、动画)何为富文本?笔者的理解是有着丰富文本的展示方式,比如可以展示颜色文本、图片、动画、还有超链接的这种就叫富文本。以前旧的版本Cocos2d-x可能并未提供这方面的支持,至于是哪个版本支持的笔者也没有去深究,笔者这里使用版本是Cocos2d-x 3.2,它就提供了类似富文本的类,满足基本的需求。代码实现:--[[==================RichText富文本=================]]--function ChatScene.RichText() local richText = ccui.RichText:create() richText:ignoreContentAdaptWithSize(false) richText:setContentSize(cc.size(100, 100)) local re1 = ccui.RichElementText:create( 1, cc.c3b(255, 255, 255), 255, &This color is white. &, &Helvetica&, 10 ) local re2 = ccui.RichElementText:create( 2, cc.c3b(255, 255, 0), 255, &And this is yellow. &, &Helvetica&, 10 ) local re3 = ccui.RichElementText:create( 3, cc.c3b(0, 0, 255), 255, &This one is blue. &, &Helvetica&, 10 ) local re4 = ccui.RichElementText:create( 4, cc.c3b(0, 255, 0), 255, &And green. &, &Helvetica&, 10 ) local re5 = ccui.RichElementText:create( 5, cc.c3b(255,0, 0), 255, &Last one is red &, &Helvetica&, 10 ) local reimg = ccui.RichElementImage:create( 6, cc.c3b(255, 255, 255), 255, &cocosui/sliderballnormal.png& ) -- 添加ArmatureFileInfo, 由ArmatureDataManager管理 ccs.ArmatureDataManager:getInstance():addArmatureFileInfo( &cocosui/100/100.ExportJson& ) local arr = ccs.Armature:create( &100& ) arr:getAnimation():play( &Animation1& ) local recustom = ccui.RichElementCustomNode:create( 1, cc.c3b(255, 255, 255), 255, arr ) local re6 = ccui.RichElementText:create( 7, cc.c3b(255, 127, 0), 255, &Have fun!! &, &Helvetica&, 10 ) richText:pushBackElement(re1) richText:insertElement(re2, 1) richText:pushBackElement(re3) richText:pushBackElement(re4) richText:pushBackElement(re5) richText:insertElement(reimg, 2) richText:pushBackElement(recustom) richText:pushBackElement(re6) richText:setLocalZOrder(10) return richTextend五、文本输入框实现(解决pc键盘无法删除字符的bug)& CocostudioUI编辑器提供TextField(输入框),笔者在这里也对它进行了实现,聊天系统一般需要玩家输入信息,所以这里提供了一个输入框。但笔者在使用这个UI的时候,发现在win32平台不能对输入的文本进行删除,但在移动设备可以使用输入法对它进行编辑,所以笔者在这里做了相关的处理把这个bug修正了。--- 键盘事件监听回调方法 local function onkeyPressed(keycode, event)
print(&keypress&)
if keycode == cc.KeyCode.KEY_BACKSPACE then
local str = inputBox:getStringValue()
str = string.sub( str, 0, string.len( str ) - 1 )
inputBox:setText( str )
-- 键盘监听事件 local keyListener = cc.EventListenerKeyboard:create() keyListener:registerScriptHandler(onkeyPressed,cc.Handler.EVENT_KEYBOARD_PRESSED) local eventDispatcher = ChatScene.uiLayer:getEventDispatcher() eventDispatcher:addEventListenerWithSceneGraphPriority(keyListener, ChatScene.uiLayer)通过以上方式,我们就可以使用简拼的BackSpace对字符进行删除了。大家请叫我活雷锋。六、动态往ListView添加列表项& 笔者想到聊天系统的列表是不断刷新的,所以可能需要实现动态添加列表项,其实这个实现很简单的,只需要在代码中监听相应的事件,然后往ListView添加一项就可以了。这里我监听了发送按钮的点击事件,然后获取到输入框的文本,在把文本添加到列表项中去。if sender:getTag() == TAG_SEND_BUTTON then
print(&sendText...&)
-- 获得输入框的文本
local value = inputBox:getStringValue()
local textView = ccui.Text:create(value,&Arial&,20)
print(&value:&..value)
if eventType == ccui.TouchEventType.began then--
local custom_text = ChatScene.RichText()
local custom_item = ccui.Layout:create()
custom_item:setContentSize( textView:getContentSize() )
textView:setPosition( cc.p( custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0 ) )
custom_item:addChild( textView )
-- 如果当前Tag为世界
if ChatScene.getCurrentTag() == TAG_WORLD then
-- 插入自定义项
worldList:insertCustomItem( custom_item, 0 )
worldList:addChild(custom_item)
elseif ChatScene.getCurrentTag() == TAG_PARTY then
partyList:addChild(custom_item)
partyList:insertCustomItem( custom_item, 0 )
elseif ChatScene.getCurrentTag() == TAG_CHAT then
chatList:addChild(custom_item)
chatList:insertCustomItem( custom_item, 0 )
end以上基本是笔者这个聊天系统的重要内容,下面把完整的实现代码给大家:--[[===============ChatSence聊天系统模块===============]]---- 类local ChatScene = {}ChatScene.uiLayer = nilChatScene.widget = nil-- 窗口大小local winSize = nil-- 获得UI界面上的3个按钮local worldButton = nillocal partyButton = nillocal chatButton = nil-- 获得三个每个按钮对应的三个面板local wordPanel = nillocal partyPanel = nillocal chatPanel = nil-- 获得每个面板的ListViewlocal worldList = nillocal partyList = nillocal chatList = nil-- 列表项local listview_item = nillocal head_icon = nillocal level = nillocal name = nillocal text = nil-- 列表项个数local items_count = nil-- 获得输入框local inputBox = nillocal sendButton = nil-- 弹出对话框local dialog = nillocal chat = nillocal lahei = nillocal closeButton = nil-- 三个标记local flag = nillocal TAG_WORLD = 1 -- 标识世界local TAG_PARTY = 2 -- 标识公会local TAG_CHAT = 3 -- 标识私聊-- 一些按钮的Taglocal TAG_WORLD_BUTTON = 1local TAG_PARTY_BUTTON = 2local TAG_CHAT_BUTTON = 3local TAG_SEND_BUTTON = 4local TAG_CHAT_BUTTON2 = 5local TAG_LAHEI_BUTTON = 6local TAG_CLOSE_BUTTON = 7-- 场景创建ChatScene.create = function() local scene = cc.Scene:create() scene:addChild( ChatScene.createChatLayer() ) return sceneend--[[touchEvent触摸事件回调方法]]--local function touchEvent( sender, eventType ) if sender:getTag() == TAG_WORLD_BUTTON then
wordPanel:setVisible(true)
partyPanel:setVisible(false)
chatPanel:setVisible(false)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_WORLD ) elseif sender:getTag() == TAG_PARTY_BUTTON then
partyPanel:setVisible(true)
wordPanel:setVisible(false)
chatPanel:setVisible(false)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_PARTY ) elseif sender:getTag() == TAG_CHAT_BUTTON then
partyPanel:setVisible(false)
wordPanel:setVisible(false)
chatPanel:setVisible(true)
dialog:setVisible(false)
ChatScene.setCurrentTag( TAG_CHAT ) elseif sender:getTag() == TAG_SEND_BUTTON then
print(&sendText...&)
-- 获得输入框的文本
local value = inputBox:getStringValue()
local textView = ccui.Text:create(value,&Arial&,20)
print(&value:&..value)
if eventType == ccui.TouchEventType.began then--
local custom_text = ChatScene.RichText()
local custom_item = ccui.Layout:create()
custom_item:setContentSize( textView:getContentSize() )
textView:setPosition( cc.p( custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0 ) )
custom_item:addChild( textView )
-- 如果当前Tag为世界
if ChatScene.getCurrentTag() == TAG_WORLD then
-- 插入自定义项
worldList:insertCustomItem( custom_item, 0 )
worldList:addChild(custom_item)
elseif ChatScene.getCurrentTag() == TAG_PARTY then
partyList:addChild(custom_item)
partyList:insertCustomItem( custom_item, 0 )
elseif ChatScene.getCurrentTag() == TAG_CHAT then
chatList:addChild(custom_item)
chatList:insertCustomItem( custom_item, 0 )
end elseif sender:getTag() == TAG_CHAT_BUTTON2 then
partyPanel:setVisible(false)
wordPanel:setVisible(false)
chatPanel:setVisible(true)
dialog:setVisible(false) elseif sender:getTag() == TAG_LAHEI_BUTTON then
print(&我就把你拉黑,逗比&) elseif sender:getTag() == TAG_CLOSE_BUTTON then
dialog:setVisible(false) elseif sender:getTag() == 8 then
if eventType == ccui.TouchEventType.ended then
ChatScene.widget:setVisible( not ChatScene.widget:isVisible() )
end endendlocal function onExit(strEventName) ChatScene.uiLayer:release() ChatScene.uiLayer = nilend--[[=================addOpenButton添加一个打开的按钮=================]]--function ChatScene.addOpenButton() local openButton = ccui.Button:create() -- 创建一个按钮 openButton:setTouchEnabled(true)-- 设置可触摸 openButton:loadTextures( &cocosui/animationbuttonnormal.png&, &cocosui/animationbuttonpressed.png&, && )--加载纹理 openButton:setAnchorPoint( cc.p( 0, 0 ) ) openButton:setPosition( cc.p( winSize.width -100, winSize.height - 50 ) ) ChatScene.uiLayer:addChild(openButton, 1) openButton:setTag(8) openButton:addTouchEventListener(touchEvent)end--[[==============textFieldEvent输入框监听事件回调方法==============]]--local function textFieldEvent(sender, eventType) if eventType == ccui.TextFiledEventType.attach_with_ime then
print(&attach_with_ime&) elseif eventType == ccui.TextFiledEventType.detach_with_ime then
print(&detach_with_ime&) elseif eventType == ccui.TextFiledEventType.insert_text then
print(&insert_text&) elseif eventType == ccui.TextFiledEventType.delete_backward then
print(&delete_backward&) endend-- ListView点击事件回调local function listViewEvent(sender, eventType) -- 事件类型为点击结束 if eventType == ccui.ListViewEventType.ONSELECTEDITEM_END then
print(&select child index = &,sender:getCurSelectedIndex())
if dialog:isVisible() == true then
dialog:setVisible(false)
ChatScene.showDialog()
end endend-- 滚动事件方法回调local function scrollViewEvent(sender, eventType) -- 滚动到底部 if eventType == ccui.ScrollviewEventType.scrollToBottom then
print(&SCROLL_TO_BOTTOM&)
-- 滚动到顶部 elseif eventType == ccui.ScrollviewEventType.scrollToTop then
print(&SCROLL_TO_TOP&) endend--[[====================createChatLayer创建聊天层====================]]--function ChatScene.createChatLayer() ChatScene.uiLayer = cc.Layer:create()-- 创建ui层 print(&getReferenceCount1:&..ChatScene.uiLayer:getReferenceCount()) winSize = cc.Director:getInstance():getWinSize()-- 获得屏幕大小 ChatScene.setCurrentTag(TAG_WORLD) ChatScene.addOpenButton() ChatScene.findViews() ChatScene.setTouchEnabled() ChatScene.setTags() ChatScene.addTouchEventListener() -- 初始化三组数据 local array = {} for i = 1, 20 do
array[i] = string.format(&请叫我巫大大%d&, i - 1) end local array1 = {} for i = 1, 20 do
array1[i] = string.format(&公会开放啦%d&, i - 1 ) end local array2 = {} for i = 1, 20 do
array2[i] = string.format(&私聊列表项%d&, i - 1 ) end -- 创建模型 local default_button = ccui.Button:create(&cocosui/backtotoppressed.png&, &cocosui/backtotopnormal.png&) default_button:setName(&Title Button&) -- 创建默认item local default_itme = ccui.Layout:create() default_itme:setTouchEnabled(true) default_itme:setContentSize(default_button:getContentSize()) default_button:setPosition(cc.p( default_itme:getContentSize().width / 2.0, default_itme:getContentSize().height / 2.0 )) default_itme:addChild(default_button) -- 设置模型 worldList:setItemModel(default_itme)
-- 这里是5项 -- for i = 1, math.floor( count / 4 ) do --
print(&i:&..i) --
--压栈一个默认项(通过克隆创建的)进listView. --
worldList:pushBackDefaultItem() -- end -- -- -- 插入默认项 -- for i = 1, math.floor( count / 4 ) do --
-- 插入一个默认项(通过克隆创建的)进listView. --
worldList:insertDefaultItem(0) -- end --使用cleanup清空容器(container)中的所有子节点(children) -- worldList:removeAllChildren() -- local testSprite = cc.Sprite:create(&cocosui/backtotoppressed.png&) -- testSprite:setPosition(cc.p(200,200)) -- worldList:addChild(testSprite) -- 获得数组的大小 local count = table.getn(array) print(&count:&..count) -- 添加自定义item for i = 1, count do
-- 创建一个Button
local custom_button = ccui.Button:create(&cocosui/button.png&, &cocosui/buttonHighlighted.png&)
-- 设置Button名字
custom_button:setName(&Title Button&)
--设置按钮使用九宫(scale9)渲染器进行渲染
custom_button:setScale9Enabled(true)
-- 设置内容尺寸
custom_button:setContentSize(default_button:getContentSize())
-- 创建一个布局
local custom_item = ccui.Layout:create()
-- 设置内容大小
custom_item:setContentSize(custom_button:getContentSize())
-- 设置位置
custom_button:setPosition(cc.p(custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0))
-- 往布局中添加一个按钮
custom_item:addChild(custom_button)
-- 往ListView中添加一个布局
worldList:addChild(custom_item) end -- local function customButtonListener(sender, touchType) --
if sender:getTag() == 1 then --
dialog:setVisible(true) --
end -- end for i = 1, 20 do
local custom_button = ccui.Button:create(&cocosui/button.png&, &cocosui/buttonHighlighted.png&)
custom_button:setName(&wwj&)
custom_button:setScale9Enabled(true)
custom_button:setContentSize(default_button:getContentSize())
local custom_item = ccui.Layout:create()
custom_item:setContentSize(custom_button:getContentSize())
custom_button:setPosition(cc.p(custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0) )
custom_item:addChild(custom_button)
partyList:addChild(custom_item) end for i = 1, 20 do
local custom_button = ccui.Button:create( &cocosui/button.png&, &cocosui/buttonHighlighted.png& )
custom_button:setName(&wwj&)
custom_button:setScale9Enabled(true)
custom_button:setContentSize( default_button:getContentSize() )
local custom_item = ccui.Layout:create()
custom_item:setContentSize( custom_button:getContentSize() )
custom_button:setPosition( cc.p( custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0 ) )
custom_item:addChild( custom_button )
chatList:addChild( custom_item ) end for i = 1, 5 do
local custom_text = ChatScene.RichText()
local custom_item = ccui.Layout:create()
custom_item:setTouchEnabled(true)
custom_item:setContentSize( custom_text:getContentSize() )
custom_text:setPosition( cc.p( custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0) )
custom_item:addChild( custom_text )
chatList:addChild( custom_item )--
local custom_button = ccui.Button:create(&cocosui/button.png&, &cocosui/buttonHighlighted.png&)--
custom_button:setName(&wwj&)--
custom_button:setScale9Enabled(true)--
custom_button:setContentSize(default_button:getContentSize())
local custom_item2 = ccui.Layout:create()
custom_item2:setContentSize(custom_button:getContentSize())
custom_button:setPosition(cc.p(custom_item2:getContentSize().width / 0.6, custom_item2:getContentSize().height / 0.6) )
custom_item2:addChild(custom_button)
custom_button:setTag(i)
custom_button:addTouchEventListener(customButtonListener)
chatList:addChild(custom_item2) end -- 插入自定义item local items = worldList:getItems()--返回项的集合 -- 获得项的个数 local items_count = table.getn(items) -- for i = 1, math.floor( count / 4 ) do --
local custom_button = ccui.Button:create(&cocosui/button.png&, &cocosui/buttonHighlighted.png&) --
custom_button:setName(&Title Button&)--改变widget的名字,使用名字可以更轻松地识别出该widget --
custom_button:setScale9Enabled(true)-- 设置按钮使用九宫(scale9)渲染器进行渲染 --
custom_button:setContentSize(default_button:getContentSize()) -- --
local custom_item = ccui.Layout:create() --
custom_item:setContentSize(custom_button:getContentSize()) --
custom_button:setPosition(cc.p(custom_item:getContentSize().width / 2.0, custom_item:getContentSize().height / 2.0)) --
custom_item:addChild(custom_button) --
custom_item:setTag(1) --
worldList:insertCustomItem(custom_item, items_count) -- end -- 设置item data items_count = table.getn(worldList:getItems()) for i = 1, items_count do
-- 返回一个索引和参数相同的项.
local item = worldList:getItem( i - 1 )
local button = item:getChildByName(&Title Button&)
local index = worldList:getIndex(item)
button:setTitleText(array[index + 1]) end local partyListItems_count = table.getn(partyList:getItems()) for i = 1, partyListItems_count do
local item = partyList:getItem( i - 1 )
local button = item:getChildByName(&wwj&)
local index = partyList:getIndex(item)
button:setTitleText(array1[index + 1]) end local chatListItems_count = table.getn(chatList:getItems()) for i = 1, 20 do
local item = chatList:getItem( i - 1 )
local button = item:getChildByName( &wwj& )
local index = chatList:getIndex( item )
button:setTitleText( array2[ index + 1 ] ) end -- 移除Tag=1的子节点 -- worldList:removeChildByTag(1) -- 移除项by index -- items_count = table.getn(worldList:getItems()) -- worldList:removeItem(items_count - 1) -- 设置ListView对齐方式为横向居中 worldList:setGravity(ccui.ListViewGravity.centerVertical) --set items margin worldList:setItemsMargin(2.0) worldList:setBounceEnabled(true) -- 设置ListView对齐方式为横向居中 partyList:setGravity(ccui.ListViewGravity.centerVertical) --set items margin partyList:setItemsMargin(2.0) inputBox:addEventListener(textFieldEvent) ChatScene.uiLayer:addChild(ChatScene.widget) ChatScene.widget:setVisible(false) -- ChatScene.uiLayer:registerScriptHandler(onExit) return ChatScene.uiLayerendlocal function ListViewItem() local layout = ccui.Layout:create() layout:setSizePercent( cc.p( 200, 200 ) ) layout:setBackGroundColorType( ccui.LayoutBackGroundColorType.solid ) layout:setBackGroundColor(cc.c3b(255,0,0)) local image = ccui.ImageView:create(&&) layout:addChild(image) return layoutendlocal function loadListViewItemFromJson() listview_item = ccs.GUIReader:getInstance():widgetFromJsonFile( &res/listview_item/listview_item.ExportJson& ) head_icon = listview_item:getChildByTag( 6 ) level = listview_item:getChildByTag( 7 ) name = listview_item:getChildByTag( 8 ) text = listview_item:getChildByTag( 9 )end--[[===================设置相关标记===================]]--function ChatScene.setTags() worldButton:setTag(TAG_WORLD_BUTTON) partyButton:setTag(TAG_PARTY_BUTTON) chatButton:setTag(TAG_CHAT_BUTTON) sendButton:setTag(TAG_SEND_BUTTON) chat:setTag(TAG_CHAT_BUTTON2) lahei:setTag(TAG_LAHEI_BUTTON) closeButton:setTag(TAG_CLOSE_BUTTON)end--[[============================findViews()找到UI控件============================]]--function ChatScene.findViews() ChatScene.widget = ccs.GUIReader:getInstance():widgetFromJsonFile( &ChatUI_1/ChatUI_1.json& ) ChatScene.widget:setPosition( cc.p( 40, 40 ) ) loadListViewItemFromJson() -- 获得UI界面上的3个按钮 worldButton = ChatScene.widget:getChildByTag(6) partyButton = ChatScene.widget:getChildByTag(7) chatButton = ChatScene.widget:getChildByTag(8) -- 获得三个每个按钮对应的三个面板 wordPanel = ChatScene.widget:getChildByTag(5) partyPanel = ChatScene.widget:getChildByTag(9) chatPanel = ChatScene.widget:getChildByTag(10) -- 获得每个面板的ListView worldList = wordPanel:getChildByTag(13) partyList = partyPanel:getChildByTag(14) chatList = chatPanel:getChildByTag(15) -- 获得输入框 inputBox = ChatScene.widget:getChildByTag(11) sendButton = ChatScene.widget:getChildByTag(12) dialog = ChatScene.widget:getChildByTag(20) chat = dialog:getChildByTag(21) lahei = dialog:getChildByTag(22) closeButton = dialog:getChildByTag(27)end--[[==================addTouchEventListener添加触摸事件==================]]--function ChatScene.addTouchEventListener() -- 设置按钮监听事件 worldButton:addTouchEventListener(touchEvent) partyButton:addTouchEventListener(touchEvent) chatButton:addTouchEventListener(touchEvent) sendButton:addTouchEventListener(touchEvent) chat:addTouchEventListener(touchEvent) lahei:addTouchEventListener(touchEvent) closeButton:addTouchEventListener(touchEvent) -- 设置ListView的监听事件 worldList:addScrollViewEventListener(scrollViewEvent) worldList:addEventListener(listViewEvent) partyList:addScrollViewEventListener(scrollViewEvent) partyList:addEventListener(listViewEvent) chatList:addScrollViewEventListener(scrollViewEvent) chatList:addEventListener(listViewEvent)
--- 键盘事件监听回调方法 local function onkeyPressed(keycode, event)
print(&keypress&)
if keycode == cc.KeyCode.KEY_BACKSPACE then
local str = inputBox:getStringValue()
str = string.sub( str, 0, string.len( str ) - 1 )
inputBox:setText( str )
-- 键盘监听事件 local keyListener = cc.EventListenerKeyboard:create() keyListener:registerScriptHandler(onkeyPressed,cc.Handler.EVENT_KEYBOARD_PRESSED) local eventDispatcher = ChatScene.uiLayer:getEventDispatcher() eventDispatcher:addEventListenerWithSceneGraphPriority(keyListener, ChatScene.uiLayer)end--[[==================RichText富文本=================]]--function ChatScene.RichText() local richText = ccui.RichText:create() richText:ignoreContentAdaptWithSize(false) richText:setContentSize(cc.size(100, 100)) local re1 = ccui.RichElementText:create( 1, cc.c3b(255, 255, 255), 255, &This color is white. &, &Helvetica&, 10 ) local re2 = ccui.RichElementText:create( 2, cc.c3b(255, 255, 0), 255, &And this is yellow. &, &Helvetica&, 10 ) local re3 = ccui.RichElementText:create( 3, cc.c3b(0, 0, 255), 255, &This one is blue. &, &Helvetica&, 10 ) local re4 = ccui.RichElementText:create( 4, cc.c3b(0, 255, 0), 255, &And green. &, &Helvetica&, 10 ) local re5 = ccui.RichElementText:create( 5, cc.c3b(255,0, 0), 255, &Last one is red &, &Helvetica&, 10 ) local reimg = ccui.RichElementImage:create( 6, cc.c3b(255, 255, 255), 255, &cocosui/sliderballnormal.png& ) -- 添加ArmatureFileInfo, 由ArmatureDataManager管理 ccs.ArmatureDataManager:getInstance():addArmatureFileInfo( &cocosui/100/100.ExportJson& ) local arr = ccs.Armature:create( &100& ) arr:getAnimation():play( &Animation1& ) local recustom = ccui.RichElementCustomNode:create( 1, cc.c3b(255, 255, 255), 255, arr ) local re6 = ccui.RichElementText:create( 7, cc.c3b(255, 127, 0), 255, &Have fun!! &, &Helvetica&, 10 ) richText:pushBackElement(re1) richText:insertElement(re2, 1) richText:pushBackElement(re3) richText:pushBackElement(re4) richText:pushBackElement(re5) richText:insertElement(reimg, 2) richText:pushBackElement(recustom) richText:pushBackElement(re6) richText:setLocalZOrder(10) return richTextendlocal function textFieldCompleteHandler()end--[[=====================setTouchEnabled设置一些控件可触摸====================]]--function ChatScene.setTouchEnabled() -- 设置可触摸 worldButton:setTouchEnabled(true) partyButton:setTouchEnabled(true) chatButton:setTouchEnabled(true) sendButton:setTouchEnabled(true) chat:setTouchEnabled(true) lahei:setTouchEnabled(true) closeButton:setTouchEnabled(true) inputBox:setTouchEnabled(true)end--[[=================setCurrentTag设置当前Tag=================]]--function ChatScene.setCurrentTag(tag) flag =end--[[================获得当前Tag===============]]--function ChatScene.getCurrentTag() return flagend--[[===============显示dialog===============]]--function ChatScene.showDialog() local popup= cc.Sequence:create(cc.ScaleTo:create( 0.0, 0.0 ),
cc.ScaleTo:create( 0.06, 1.05 ),
cc.ScaleTo:create( 0.08, 0.95 ),
cc.ScaleTo:create( 0.08, 1.0 ),
nil) dialog:setVisible(true) dialog:runAction( popup )end-- 返回场景return ChatScene源码也给你们准备好了,请再次叫我活雷锋:http://download.csdn.net/detail/wwj_748/7725699
无相关信息

我要回帖

更多关于 ios手游模拟器 的文章

 

随机推荐