今天把角色选择界面的坑填了一下
http://www.cocoachina.com/bbs/read.php?tid=458895&page=1&toread=1#tpc
New: 教程司令部已经更新了教程 往后不再使用链式的教程结构
没什么新东西 都是之前教程的内容
(= =代码就不再敲一遍了 绕了我吧)
我就只做个介绍吧= =
前后台的代码在这里
前台 : http://pan.baidu.com/s/1kUnlQcv,1
后台: http://pan.baidu.com/s/1c1ofZXm,1
数据库:http://pan.baidu.com/s/1mhwDqvY,1
= =那么关于本篇教程涉及的前提
从教程司令部看过来就行了
那么先把数据库导入吧
选中db_user,右键,导入,从SQL转储文件导入数据库,直接覆盖就行

可以看到有两个表
一个是用户表,存的用户名和密码

一个是角色表,存的角色信息,这里是自增id主键,用户名外键,角色名,等级,登录次数,角色形象和头像
我们这里呢 一个用户名,可以有两个角色,
so 我们如何处理这种一对多的问题呢
一种思路呢就是
我们在角色表可以有很多的角色 每个角色都有一个对应的用户ID
然而对于同一个用户的角色们 将指向同一个ID
这样 我们在用select查表的时候 只要给出我们登录账号所映射的ID 就能够查到0,1或2个角色的记录了
查看上面两张图片对应的字段能够帮助理解
实际上这里我还加了外键的级联, 不过没什么用, 不打算在这里讲了, 可以点开结构设计器看一下, 作用就是避免数据的冗余
不过不见得是好事,再看看吧
好了 后台把server.js开起来
我们看到前台 把CCC开起来
然后选中 loginSceneSrc/Scene/loginScene.fire
作为启动场景
然后运行吧
好吧我换了张登录背景
然后呢
之前寒碜的登录回调label已经换成sprite啦
用的AnimationClip和Sprite做了登录提示
另外因为父节点的透明度会级联到子节点
so 我自己在外面用PS把透明已经调好啦
这样里面的字体就不会看起来怪怪的
密码为空


然后提示框三秒后消失

密码错误


同样三秒后消失

好了 在我们登录成功之前
看一下代码吧
之前登录验证的代码就不讲了
我们看一下效果的部分
代码在msgBoxSrc/script文件里面

其实呢就是直接调用写好的AnimationClip
然后在AnimationClip里面写好回调函数
3秒后调用postShow将当前提示框隐藏掉
而动画呢也很简单 第一帧将node的ScaleX调为0,第二帧将node的ScaleX调为1就行了
好了 我们继续吧
输入 LINHAIWEI123
密码 ASD520
然后就会切换到服务器选择场景了

因为我们只用一台本地服务器 那就简略添加一个label 监听点击 然后直接换到角色选择界面就好了

好了我们来到角色选择界面了

那么上面的4个label的部分就很直接拉
后台传来的数据
直接label.string = txt 就行了
而对于帧动画和头像的纹理
直接调用对应封装好的函数就行了 这里我都写为了show
代码在 heroChooseSceneSrc/script下
这个是头像切换的接口 在myHeadTexture.js下

这个是动画切换的接口 在myHeroTexture.js下

这里呢用了一个anim.stop()函数
因为呢AnimationClip执行的动画 如果新运行一个AnimationClip 那么之前运行的动画 更像是被压到一个栈中
如果上层的动画运行完, 就会弹出栈中的动画继续播放, 对于loop一系列的AnimationClip 不知道会不会有奇奇怪怪的问题, 还是手动停掉吧
那么最后一个脚本就是用来将后台的数据传来前台并更新对应数据的啦
在myHeroInfoIO中
好了 今天先到这里吧
http://www.cocoachina.com/bbs/read.php?tid=458895&page=1&toread=1#tpc








