现在的位置: 首页 > 综合 > 正文

HTML5游戏 BrowserQuest 用户登录和注册

2014年08月11日 ⁄ 综合 ⁄ 共 1349字 ⁄ 字号 评论关闭

登录和注册页面切换

游戏在启动后,访问/client/index.html ,默认显示注册页面,如果已经注册过,则显示用户登录页面。

由于客户端的js代码基于jquery框架实现,因此需要具备一定的js能力,如果没有jquery的相关知识也没有关系,基本的流程也可以看明白。

打开client/index.html里面,在页面最后有如下代码

          if(!Modernizr.localstorage) {    //是否支持本地存储
                var alert = document.createElement("div");
                    alert.className = 'alert';
                    alertMsg = document.createTextNode("You need to enable cookies/localStorage to play BrowserQuest");
                    alert.appendChild(alertMsg);

                target = document.getElementById("intro");
                document.body.insertBefore(alert, target);
            } else if(localStorage && localStorage.data) { //如果本地存储数据,则显示登录页面
                parchment.className = "loadcharacter";
            }

到这里,我们可以看到是通过修改CSS样式来实现页面的切换。

同时,我们也接触到了localStoreage的用法,数据的存取访问,只需要引用localStorage.data对象

注册页面的实现

如果localStorage.data没有存储任何信息,仍然显示最开始的注册页面
<article id="createcharacter">

在这个里面可以看到注册页面所需要的信息,只有一个输入用户名的文本框

     当输入文字后,Play按钮和上半部分的小人修改状态,相关的触发代码在 client/js/main.js,line 91-93.
   $('#nameinput').bind("keyup", function() {
                app.toggleButton();
            });
使用的jquery语法,当在用户名文本框有键盘输入消息时候,调用toggleButton修改状态,具体代码位于client/js/app.js 

登录页面的实现

如果切换登录页面,查看client/index.html文件
<article id="loadcharacter">

在这个里面可以看到没有了文本框,出现了另外一个元素

<div id="playername" class="stroke">
在 client/js/main.js,line  139 中,从localstorage中读取上次保存的用户名,设置到这个div里面
     var data = app.storage.data;
    		if(data.hasAlreadyPlayed) {
    		    if(data.player.name && data.player.name !== "") {
		            $('#playername').html(data.player.name);
    		        $('#playerimage').attr('src', data.player.image);
    		    }
    		}
    		
到此,已经完成了注册和登陆页面的流程。

抱歉!评论已关闭.