今天继续学习phaser.js。上周写的学习教程主要内容是创建游戏场景,游戏中的显示对象,按钮对象的使用以及如何在不同屏幕大小中完美适配。这篇博客以介绍游戏榜单的渲染更新为主。

    代码地址:https://github.com/dreamITGirl/phaser,具体文件为Billboard.js。

    这个学习过程是以一个类似于头脑风暴的游戏为实例,来学习phaser的框架,会有很多API讲不到,可自己去查,去学习。

    由于考虑到后面的需求,所以现在将文件的文件名改了,demo01.js改为了load.js(用于加载图片和精灵图),增加了game.js(公共的函数以及游戏场景的创建)

    创建文本文字

    

    这里可以看一下创建文本对象的时候需要的参数,有五个参数,第一个一般是游戏对象,一般指的是game对象。x代表文字在x方向上的位置,y代表文字在y方向的位置。text--想要渲染的文字内容,style-文字样式

    更改文本内容

    在phaser.js中有一个setText的方法,但是,也可以直接给这个文本对象的text属性赋值。建议输出一下创建的文本对象的属性。这样,能更熟悉的运用这个文本对象。

    

    具体使用可以看一下代码;这里我把Billboard的代码贴出来,具体的调用可以在gitHub中看.

    

/*如何将渲染游戏中的文字*/
//需求:榜单排名需要每隔一段事件就要更新,这里我们就在update或者render函数中改变排名内容;
//update和render函数是每秒就会调一次,但它并不会影响整个游戏的内存
function Billboard(){
var self = this;//在ajax中的this并不会指向我们想要的对象
this.init = function(){ this.listArr = []
// this.load.image('score-list','./images/score-list.png');//加载图片,需要放在demo01.js中的load函数里统一加载,否则加载不出来
}
this.preload = function(){
loadbg()//加载背景
/*增加游戏所需要的图片,使用的demo01.js封装的函数*/
addImage(24,120,'score-list',594,879)
addSprite(24,37,'back',50,50,function(){
game.state.start('Load')//点击榜单可进入榜单页面
})
/*var listbg = game.add.image(24*bl,120*bl,'score-list');
listbg.width = 594 *bl;
listbg.height = 879 *bl;*///这个函数是addImage未封装的内容。
this.loadText() }
this.update = function(){
setTimeout(function(){
$.ajax({
type:"get",
url:"./json/billboard.json",
async:true,
success:function(data){
for(var i=0;i<data.length;i++){
if(i<self.listArr.length){
self.listArr[i][0].text= data[i].ranking;
self.listArr[i][1].text= data[i].name;
self.listArr[i][2].text= data[i].score;
self.listArr[i][3].text= data[i].questionNum+' / '+data[i].useTime+' / '+data[i].rightRadio;
}else{
self.listArr[i] = [
self.addText(62,i,data[i].ranking,30,'#6CDDFA'),
self.addText(122,i,data[i].name,30,'#666'),
self.addText(250,i,data[i].score,30,'#666'),
self.addText(383,i,data[i].questionNum+' / '+data[i].useTime+' / '+data[i].rightRadio,24,'#666')
]
}
}
}
});
},2000) }
this.addText = function(x,i,text,fontSize,color){
var top =( 200+81*i+(80-fontSize)/2)*bl;
var text = this.add.text(x*bl,top,text,{
fill:color,
fontSize:(fontSize *bl),
fontWeight:'normal',
})//有四个参数,this.add.text(x,y,text,style)//这四个参数分别代表了文本的x方向的位置,y方向的位置,当前的文本内容,样式对象;渲染的字体基本都是默认加粗的字体。
return text
}
this.loadText = function(){
/*用ajax请求榜单数据*/
$.ajax({
type:"get",
url:"./json/version.json",
async:true,
success:function(res){
for (var i=0;i<res.length;i++) {
self.listArr[i] = [
self.addText(62,i,res[i].ranking,30,'#6CDDFA'),
self.addText(122,i,res[i].name,30,'#666'),
self.addText(250,i,res[i].score,30,'#666'),
self.addText(383,i,res[i].questionNum+' / '+res[i].useTime+' / '+res[i].rightRadio,24,'#666')
]
}
},
error:function(err){
console.log(JSON.stringify(err))
}
});
} }

    

phaser小游戏框架学习(二)的更多相关文章

  1. phaser小游戏框架学习(一)

    这两天由于项目的需要,所以简单学了一下phaser框架. 官网:http://phaser.io/ 还有一个phaser小站,是中文的网站,但是内容不如英文文档全,大家也可以去看这个网站,需要查阅AP ...

  2. phaser小游戏框架学习中的屏幕适配

    这篇博客主要讲一下上一篇博客的右侧和底部出现的问题.就是页面会有偏移量.说一下这个产生的原因吧. 一开始在构建html页面的时候,习惯性的在页面中加了 <meta name="view ...

  3. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  4. 【WePY小程序框架实战二】-页面结构

    [WePY小程序框架实战一]-创建项目 项目结构 |-- dist |-- node_modules |-- src | |-- components |-- a.wpy |-- b.wpy |-- ...

  5. Unity 游戏框架搭建 (二十三) 重构小工具 Platform

    在日常开发中,我们经常遇到或者写出这样的代码 var sTrAngeNamingVariable = "a variable"; #if UNITY_IOS || UNITY_AN ...

  6. Phaser小游戏

    本来今天打算阅读AngularJs源代码的,但是上头下来了任务,做个小霸王上面的那种接金蛋的游戏,想象最近系统的学习了一下gulp和之前熟悉了一遍的Phaser,于是就打算用这两个东西一起来做个dem ...

  7. 从一点儿不会开始——Unity3D游戏开发学习(二) ——GUI控件之Button

    一些废话 我在上一篇“一点儿不会”的系列随笔中说大概一周会发个2~3篇关于Unity的学习笔记.可这就两周过去了,我还停留在一篇的进度上,主要是这两周发生了一些事情导致我更新缓慢.其实截至目前为止,上 ...

  8. Android 学习笔记之AndBase框架学习(二) 使用封装好的进度框,Toast框,弹出框,确认框...

    PS:渐渐明白,在实验室呆三年都不如在企业呆一年... 学习内容: 1.使用AbActivity内部封装的方法实现进度框,Toast框,弹出框,确认框...   AndBase中AbActivity封 ...

  9. Unity 游戏框架搭建 (二) 单例的模板

      上一篇文章中说到的manager of managers,其中每个manager都是单例的实现,当然也可以使用静态类实现,但是相比于静态类的实现,单例的实现更为通用,可以适用大多数情况. 如何设计 ...

随机推荐

  1. L2-013. 红色警报(dfs)

    L2-013. 红色警报 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 战争中保持各个城市间的连通性非常重要.本题要求你编写一 ...

  2. Oracle 备份与恢复基础

    Oracle 备份与恢复基础 :三思笔记 备份与恢复 A whole database backup is either a consistent backup or an inconsistent ...

  3. 10-24C#基础--枚举

    一.枚举 1.定义:在程序编写中,枚举同结构体是并列的,位于Class下面:枚举是常量的集合. enum meiju://枚举是常量的集合,一般冒号后面不指定数据类型 2.格式: enum meiju ...

  4. node install error

    错误:Unexpected end of JSON input while parsing near.... 解决办法: npm cache clean --force

  5. elasticsearch(3) curl命令

    curl 操作http的get/post/put/delete CURL 命令参数-a/--append 上传文件时,附加到目标文件-A/--user-agent <string> 设置用 ...

  6. H264中的SPS、PPS提取与作用<转>

    牛逼的视频会议网站:http://wmnmtm.blog.163.com/blog/#m=0 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  7. 异常 android.content.res.Resources$NotFoundException: String resource ID #0x61

    09-09 16:08:41.554: E/Weaver(13140):09-09 16:08:41.554: E/Weaver(13140): android.content.res.Resourc ...

  8. C程序设计语言(K&R) 笔记2

    (1) #include <stdio.h> main(){ int c; while((c = getchar()) != EOF){ putchar(c); } } 注意,因为 != ...

  9. 2-4 zookeeper配置文件介绍,运行zk

    心跳机制就是超过一定的时间之后,那么这个从节点就会被抛弃. zookeeper需要存储的数据,比如说事务文件等等,它都会存到这个dataDir目录下. 如果是伪分布式的集群环境,那么它的端口肯定是要变 ...

  10. 1用java实现冒泡排序算法以及解决的几个小问题。

    package huawei.exam; public class BubbleSort { /** * @param args */ public static void main(String[] ...