手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2011年04月11日的文章

Yii笔记

本文纯粹是笔记,记下来怕忘了
1、终止当前操作,一般情况下是用exit,但用了Exit后无法看到trace的内容。所以要采用Yii::app()->end();
2、createUrl和createAbsoluteUrl,这两个函数,如果需要宣传自己的网址和内容,还是用createAbsoluteUrl函数吧。里面带了全部路径,而CreateUrl只会显示/home/xxx这样的路径,不利于SEO
3、widget默认的render无法使用theme中的模版,于是写一个类继承自CWidget,然后所有的widget都继承这个类,比如我这样实现了。。

PHP代码
  1. class Widget extends CWidget{  
  2.     private static $_viewPaths;  
  3.     /** 
  4.      * 重写CWidget中的getViewPath 
  5.      */  
  6.     public function getViewPath($checkTheme=false)  
  7.     {  
  8.         $className=get_class($this);  
  9.         if(isset(self::$_viewPaths[$className]))  
  10.             return self::$_viewPaths[$className];  
  11.         else  
  12.         {          
  13.             if($checkTheme && ($theme=Yii::app()->getTheme())!==null){  
  14.                 return self::$_viewPaths[$className] = $theme->getBasePath().DIRECTORY_SEPARATOR."widgets";  //这是我自己的路径
  15.             }  
  16.             $class=new ReflectionClass($className);  
  17.             return self::$_viewPaths[$className]=dirname($class->getFileName()).DIRECTORY_SEPARATOR.'views';              
  18.         }  
  19.     }  
  20. }  

覆写父类方法,使得getViewPath找到我指定的目录,我目录在themes/classic/下建了一个widgets的目录。这样的好处很多。。而且对于CSS和JS等路径都可以和标准视图一致

先写这么多。。。

Tags: yii

JS实现的街头霸王

自从canvas越来越被大多数人接受后,基于它的游戏也越来越多了。。。
而这个,居然没用canvas也能实现这样的效果,看这里:http://www.cnblogs.com/Random/archive/2011/04/11/2011962.html

作者这么说了:
《天机》 之后,这次又山寨了个名为《街斗霸主》的经典格式游戏《街头霸王》的模仿版Demo,花了几个月的业余时间写了这么个东西,算是对目前的技术学习的一种练习吧。

其实这种练习的结果不是很重要,主要是体会其中的过程,虽然大部分的时间是在痛苦中渡过,但也是有很多收获的,同时也暴露出很多技术方面的不足,也为以后的学习明确了一些目标。

技术方面因为考虑到大部分IE用户(而且是非IE9),所以没有用HTML5的canvas,用的div的方式处理的,这样挑战也相对大了一些,

不过确实,性能上还是不理想,IE下的表现还是比较糟糕(特别是IE6。。。恩。。。- -!)。
目前兼容IE6/7/8(理论上也兼容IE9,只是没有测试),safari,FF3.5+(因为FF2.0/3.0不支持水平翻转的样式。。- -!),Chrome,Opera。
自己写了一个小型框架,包括了开发流程和js类库,类库用了OOP Like的方式包了个语法糖衣,看上去还算是像个OOP的样子,不过因为为了追求“优雅”,直接扩展了function的prototype,所以不建议在其它地方使用。
框架开发的整体思路就是用PHP作后端代码合并输出,js代码里用$import去建立了各个代码文件之间的关系,然后页面引用合并js的PHP文件,该模式需要在本地建立一个web服务器才能作测试,并且需要设置hosts为 127.0.0.1 aralork

  游戏说明

 

    游戏是一个Demo版本,实现了核心的整体流程。游戏分为“单人游戏”模式、“双人对战”模式和“练习模式”三种玩法,不过其实实现都是一样,只是改改初始化的参数而已,挺坑爹的。。。

    游戏只需要键盘操作,不需要鼠标,

    菜单的操作是方向键移动,Enter键选择,ESC键取消;

    玩家1的操作:

       上:W,下:S,左:A,右:D,拳:J / K / L,腿:U / I / O

     玩家2的操作:

      上:↑,下:↓,左:←,右:→,拳:小键盘 1 / 2 / 3,腿:小键盘 4 / 5 / 6

    这里的 ↑ ↓ ← → 代表方向键。

    游戏演示地址

     完整源代码下载

Tags: js, 街霸, div, canvas