中文man
by X on 十二.07, 2009, under Ubuntu
man是linux里的使用手册,通过man可以快速的找到某个你不了解的命令行的使用文档。
不过ubuntu的man默认是英文的,不过不要紧,源里面提供了中文man。
x@ubuntu:~$ sudo apt-get install manpages-zh
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
下列软件包是自动安装的并且现在不再被使用了:
libnss3-dev libnspr4-dev
使用’apt-get autoremove’来删除它们
下列【新】软件包将被安装:
manpages-zh
共升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 7 个软件未被升级。
需要下载 4,651kB 的软件包。
解压缩后会消耗掉 7,606kB 的额外空间。
获取:1 http://us.archive.ubuntu.com karmic/universe manpages-zh 1.5.1-2 [4,651kB]
下载 4,651kB,耗时 3 分钟 56 秒 (19.6kB/s)
选中了曾被取消选择的软件包 manpages-zh。
(正在读取数据库 … 系统当前总共安装有 152348 个文件和目录。)
正在解压缩 manpages-zh (从 …/manpages-zh_1.5.1-2_all.deb) …
正在处理用于 man-db 的触发器…
正在设置 manpages-zh (1.5.1-2) …
安装安成后,在终端里输入 man 命令名 即可输入命令的帮助信息,例如:
x@ubuntu:~$ man man
如果要退出直接按q键,既简单又方便。
Tilda
by X on 十二.07, 2009, under Ubuntu
今天发现在很有意思的终端--Tilda,在Ubuntu下直接执行安装命令,
sudo apt-get install tilda
就可以直接安装tilda,安装完成之后在应用程序的附件里打开tilda就会出来设置界面,
在外观选项下选中启用透明,还要设置一下透明度就可以使tilda透明了。
引自:http://www.ownlinux.cn/2009/05/28/tilda-terminal.html
网页游戏开发入门教程
by X on 十二.02, 2009, under Webgame
作者:北里闻箫
一、简单的程序框架。
webgame程序构成:
三大部分。
第一是数据流程。第二是程序。第三是美术。
其中,数据流程包括了功能。也只有在功能中才能体现数据流程。
数据流程相当的麻烦,后面再讨论。
比如最简单的卖买产品。
要实现这个功能。
那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。
表的问题都简单了。关键是这个物品有什么用。这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。
最后,这些数据得绕成一个圈。
绕圈是一件困难的事情。特别是功能和道具多了起来的时候。难度是2的n次方。
在绕圈之前,如果你比较熟练设计模式。那么这个过程可以简化。难度由2的n次方变为1。
只需要有控制器、事件工厂、抽象道具工厂这三个虚类;再加上定时器,任务编辑器,这两个通用类。即可以构建一个健壮、高扩展的webgame。
在webgame里控制器几乎可以等同于页面。随便采用一种模板技术即能很方便的处理。
事件工厂是一个抽象类,所有的事件,如打工、战斗、移动等都由事件工厂的生产。并且接口相同,方便控制器控制。工厂模式。
抽象道具工厂是一个抽象类,所有的道具,如城市、地图、装备等,都由抽象道具工厂生产。并且接口相同。工厂模式。
事件与道具的结合又是一个桥接模式。
美术:
UI。简洁漂亮的界面总会有好处。
小图标。道具,地图,装备。一类至少10个吧?大体上百把个是需要的。
程序分5个部分:
服务器 定时器。(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序 员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。
php的话,可以配置corn实现。但是不管是什么操作系统,配置的时间最低是1分钟。所以,如果你要处理1秒钟刷新一次的情况。你还需要专门的定时器程序来处理,或者被定时执行的php需要包含sleep().
当然,即使有即时交互,可以不管服务器端。只处理交互的双方的客户端。js和ajax实现。
功能页面、功能函数。主要就是数据存取,判断,数据走向。
用上抽象类,会比较轻松。不过子类的爆炸是少不了的了。
ajax函数。(可选)某些需要伪即时的功能要用到。
为了让游戏看起来酷一点。用吧。
javascript函数。(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。
这里还包括一些漂亮的UI特效。毕竟是游戏。
数据库。一大堆基础数据表和详细数据表。基础数据表:比如等级1到等级100的用户的属性初始值。详细数据表:每个用户的具体属性。
数据库上,尽量优化。结构上能用1字节的就别用2字节。
二、一个详细的例子。
单纯的讨论数据流程是件痛苦的事情。
讨论程序而不给代码也是比较痛苦。
这里用的是php+mysql的。同时,这个例子没有用到类。如果时间充足的话,今年年底,我会提供一个带即时交互的简单webgame代码和核心类来说明使用了设计模式的好处。
那就按一个超简单的webgame的方式来讨论。配上适当的代码。应该有所帮助。不足的地方也请大家指出,对我个人也是帮助。
我们不去考虑游戏的可玩性,数值平衡等等问题。我们先只考虑一个简单例子的实现。
那么一个webgame的基本内容需要些什么呢?
数据库:玩家、地图、城市、建筑、武器、士兵。
功能:登陆、升级、个人战斗、士兵之间的战斗、与城市的战斗、修建建筑、打造武器、买卖道具。
(注意:每一个功能,必然对应1个或多个数据表。上面数据库中所列的只是基础中的基础。)
首先是地图、城市、建筑。
这里认为,地图可以有多张,城市在地图上,建筑在城市内。
地图表
Map :Map_ID ,X坐标, Y坐标,City_ID(城市ID),描述。
其中Map_ID是指地图的id。不是自动编号。一张地图就是一个Map_ID,可以重复。
城市表
City:City_ID,城市名字,城市所有人,城市等级,城市资源,描述。
建筑表
Build:ID,City_ID,建筑名称,建筑等级,建筑功能。
其中,地图表确定城市的位置,城市表确定城市的相关数据以及所有人,建筑表内的多条信息属于某一个城市。
建表后,显示出来。
一个for循环。把地图表整个取出来就ok。
跟普通网站的新闻列表没太大区别。不同的是,你需要取得X坐标和Y坐标定位。可以用tabel也可以用div。
class Map//地图类
{
var $Map_ID;
function Map_bg_css($Map_ID) {
$this->Map_ID = $Map_ID;
mysql_select_db($db_name,$link);
$sql=”select * from map where Map_ID=’”.$this->Map_ID.”‘ limit 1″;
$result=mysql_query($sql,$link);
echo “<style type=”.”text”.”/”.”css>”;
$rs=mysql_fetch_array($result);
echo “#map{”;
echo “position:absolute;”;
echo “width:”.$rs[X坐标].”px;”;
echo “height:”.$rs[Y坐标].”px;”;
echo “z-index:0;”;
echo “left:0px;top:0px;}”;
}
function Map_bg($Map_ID){
$this->Map_ID = $Map_ID;
$sql=”select * from map where Map_ID=’”.$this->Map_ID.”‘”;
$result=mysql_query($sql,$link);
while($rs=mysql_fetch_array($result))
{
echo “<div id=Layer_bg_”.$rs[X坐标].”_”.$rs[Y坐标].”>”;
echo “<img src=”.$rs[Map_bg].” border=0 title=”.$rs[ID].”></div>”;
}
}
}
上面是一个很简单的地图类。代码可能不太正确,意思是正确的。就是根据map表中的坐标,生成了一组div层,以及这一组层的css。
你可以改为table的。你可以也把坐标放到一个字段里,用数组的形式取。
使用的时候,用
new map;
map(N);
其中N是map表里的地图Map_ID.
城市内的建筑也类似。如果要显示出来的话。
关于地图,现在我采用的方式更为简单。通过坐标来判断需要哪些图,然后直接显示出来。当然没有碰撞什么的,因为暂时不需要。至于人物走动什么的,不在本文讨论范围。
有了地图和城市后。
涉及到的问题就是城市里资源的产生。
这时候,City表里需要有可供判断的时间和数量的字段。
比如:产生资金量Money,产生资金花费的时间Action_Time,上次产生资金时间Money_time。
这两个字段的数值应该在City_base表里出现。(即城市基础表,不同等级,不同类型城市的对应数值。这是给策划填数据用的,建好表后就等策划去头痛吧。如果你身兼数职。。。)
如何自动产生资源呢?
我们可以在城市所有人改变的时候,写入一个时间。或者在城市初始化的时候写入一个时间。
$Now_Time=date(’Y-m-d H:i:s’);
(说明:$开头是变量的意思。php里特有的。如果是asp的话可以写成。Now_Time=Now() )
把$Now_Time写入到Money_time里。
update(”UPDATE City SET Money_time=’$Now_Time WHERE City_ID=’$City_ID’ LIMIT 1;”);
$City_ID是你自己定义的。指某一个城市。如:$City_ID=1;
我们假定当前城市产生资金量为100。即$Money=100;(具体的数值,应该是由City_base表里取出的。)
假设间隔时间为$Action_Time,我们再假定是每小时执行一次。即$Action_Time=3600;(具体的数值,是根据你的初始化表里取得的。也可以根据城市等级或者用户等级取得。反正随便你自己怎么设定。)
这时候,有基础时间了。有基础资金产量了。有间隔时间了。
让它循环执行起来就行了。
上面说过,服务端用C语言定时器。客户端用javascript。
服务端,资源定时器设定为5分钟执行一次。那么我们的误差就是5分钟。对网页游戏来说,可以接受。(战斗的定时器得1分钟吧。当然服务器够牛的话,几秒钟都可以。)
当然,可以完全php写,然后配置php的corn。现在我在做的程序就是直接用php写了。包括任意长时间的定时器类,专门控制抽象事件用的。C的定时器暂时没用。
每次执行什么代码呢?
首先得新建一个定时器任务的表。目的就是让定时器知道需要执行哪些程序和数据的更新。表内容比如:城市资源更新。当然,这个表可要可不要。建立的好处是方便处理类似保护状态不产生资源之类的问题。
服务端程序:
获得当前服务器时间。
获得当前需要更新城市。
判断服务器时间与$Money_time的时间差。(时间戳,具体的时间戳网上资料满多的。)
判断时间差是否大于$Action_Time。
大于,则更新资源。同时更新$Money_time。
小于,则无操作。
客户端程序:
获得当前服务器时间。
获得当前城市的$Money,$Money_time,$Action_Time。
使用javascript显示剩余时间的倒计时,以及增加的资源量。
客户端特殊情况触发:
因为客户端显示的资源情况是伪同步,所以当客户端使用该资源的时候。需要服务端将当前的实际资源更新,属于定时器处理的时间也需要更新。
即,当客户端触发涉及资源的情况时,立即更新当前资源。同时更新定时器中会用到的$Money_time。这样才不会造成,看的资源用不到,或者定时器重复产生资源。
总体来说。这部分程序都很简单。难点在C语言定时器的制作,以及前台javascipt倒计时的写法上。
C语言定时器,找个C语言程序员,超简单;前台的javascipt,网上有很多倒计时的代码,找个来改改就能用。
<SCRIPT LANGUAGE=”JavaScript”>
var maxtime = 这里是你的时间差///一个小时,按秒计算,自己调整!
function CountDown(){
if(maxtime>=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = “你的文字说明”+minutes+”分”+seconds+”秒”;//动态显示剩余时间。
document.all["timer"].innerHTML=msg;
//if(maxtime == 3) document.all["timer"].innerHTML=’只剩3秒!’;
–maxtime;
}
else{
clearInterval(timer);
document.all["timer"].innerHTML=’时间到’;
}
}
timer = setInterval(”CountDown()”,1000);
</SCRIPT>
<div id=timer></div>
这个是网上找的代码。稍微修改就可以用的。这里只是显示了倒计时。也可以改为显示资源的增加情况。
C语言里操作mysql数据库。
// TODO: Add your control notification handler code here
bool bRes = m_dbConn.Connect(”数据库ip地址”, 3306 , “用户名”, “密码”, “数据库名”);
if(!bRes)
{
AfxMessageBox(”connect fail”);
return;
}
string strSql = “select * from city limit 1″;//所有显示或取值类的都用这段。中间的sql语句可以自己构造。
ResultSet* rs = m_dbConn.ExecuteQuery(strSql);
while(rs->Next())
{
string str = rs->GetString(”username”);
AfxMessageBox(str.c_str());
}
/*
strSql = “update city set money=money +100 where City_ID=’xxx’”;//所有的增加、删除、更新都用这段,中间的sql语句可以自己构造。
bRes = m_dbConn.ExecuteUpdate(strSql);
if(!bRes)
{
AfxMessageBox(”ExecuteUpdate fail”);
}
*/
m_dbConn.Close();
定时器的主函数。
void CBeiLiDlg::Go()
{
while(true)
{
// AfxMessageBox(”go”);
Sleep(5*1000);//毫秒。定时器刷新时间。
}
}
当然。这里的C的代码不能直接用。只是一部分。
新的方法是,通过php定时器类负责前台、时间到后,调用ajax执行完成。后台通过定时执行php定时器类的专用处理函数,处理前台掉线,前台未正常执行等情况。
如果我们的新游戏今年年底能正常上线的话。我可以公开这个类,没技术含量,但是很巧妙。
地图、城市、基本上算是有了。
接下来是城市里的建筑。
上面讲的资源增加,其实定位在建筑上更准确。不过建筑的分类和数值会复杂很多。那是策划考虑的问题。
建筑上,只讲一个前台的修建效果。
当然,这个效果是可有可无。你可以直接给个类似新闻列表的显示,再加个倒计时就行。
显示的效果就是,点修建后。不刷新页面,调入一张动画图片。并在时间到后自动转换为其他图片。
<script language=’javascript’>
function xiujian()
{
top.abc.document.getElementById(’前台建筑位置所在图片的id’).src=’修建后建筑的图片地址’;
//显示修建后的建筑图片。可以加上后台时间判断。其中abc,是建筑所在层的id,
}
function xiujian1()
{
setTimeout(’xiujian()’,5000);//动画时间5秒。这里也可以加入时间判断。当时间不到的完成的时候,继续调用动画。
}
function donghua()
{
top.abc.document.getElementById(’前台建筑位置所在图片的id’).src=’建筑动画所在的地址’;//显示修建动画。
}
donghua();
xiujian1();
</script>
附带讲一下。如果要考虑多浏览器兼容,那么用prototype.js。如果只需要ff和ie。那么用而jqury.js
或尽量自己写。因为120k的prototype.js不算小。
后台部分,把时间到,增加资源的代码,改为时间到,增加或更新建筑就行了。又是增加N个表。。
新的方法是,增加事件子类。
建筑基础表:产出,类型,图片等等。。
建筑详细表:属于哪个城市,可以在城市表里关联。关联的方式不同会对程序有很大的影响。各种关联方式都行,但是一旦关联方式确定后,最好别改动。
现在建筑也有了。用类似的定时方式,打工,征兵等等都可以实现。
战斗,
兵的参数:兵种,数量,攻击,防御等等。
战斗的临时表:谁的兵,打谁,出发时间,战斗时间,战斗结果。
这里的几个字到是简单。实际的表会复杂一些。
webgame中,战斗的过程分两种,
一种是给出双方参数,时间到,就根据公式计算结果。
一种是半即时或者即时的战斗,可以边打边喝药边用技能的那种。
第一种流程。
点出兵。这时候,兵的参数,出发时间,到达时间,都记录进战斗临时表。
定时器 中,处理战斗的部分,判断时间是否到开打的时候。到开打的时间了,则取得被攻击方的兵的参数。然后通过几个公式计算结果。处理结果,比如谁的兵挂了多少, 战场掉落了多少钱,城市被谁抢到了。一大堆判断以及updata。(这里的定时器处理和获得资源的定时器处理是很类似的。)
最后把结果分别发给双方。(又涉及到一个短信息系统。)
第二种流程。
点攻击。马上就处理数据。打打npc好做。玩家之间对战,也可以把被攻击的玩家当成npc来处理。
两个人或两人以上即时战斗。需要用到ajax了。目前在技术上和理论上是没问题的,还没实际写代码,所以不好讲。
现在,技术上已经确定可以很好的实现了。
很简单的公式,两种战斗都可以用到:
intval(sqrt($User_B_AP)-sqrt($User_A_DP));
根号下攻击-根号下防御=伤害。
具体写的时候,公式肯定会复杂不少,不过这头痛的事,还是交给策划去做吧。
战斗的具体参数,其实已经不是程序考虑的了。
程序只需要考虑从数据表A取得数据,存入临时表B。然后当时间到了后(通过定时器实现),再从数据表C取得数据,通过公式计算,最后删除临时表B或者把临时表B存到另外一个地方备份。
这里的思路其实就是定时器类。
数据是哪些?找策划要。有几个表?找策划要。战斗公式?找策划要。
有地图、城市、建筑、士兵、战斗后,道具的出现就有必要了。
为什么呢?
有了城市能做什么?产生资源,产生钱,产生兵。
有了士兵做什么?可以抢资源,抢钱。
资源和钱做什么?买道具。
买道具做什么?更好的抢资源和抢钱。
(同时,抢资源,抢钱的时候,资源会被消耗)
这是一个很简单的循环。就是绕成了一个圈,虽然这个圈很小。有部分策划想得非常好,就是绕不成圈,那样没任何意义。
首先,需要一个道具的基础表。
自动ID,道具类型,道具属性,说明。
在道具的处理上,可以在玩家表里增加更多字段,道具跟随玩家。
也可以单独建一个道具的详细表。用类似背包的方式实现。
背包的方式有两种,一是用数组存储,二是用横向表存储。都挺麻烦的。不过从道具流通和买卖上考虑。用背包的方式是值得的。
接下来的功能。
商店。拍卖行。基本上跟一般的网站应用很类似。只不过产品变为了游戏里的道具。货币是游戏币。
三、总结
上面的小例子,思路上是基本完善,没问题的。程序代码上只给了一小部分,能真正理解这一小部分。其他部分的程序应该不是问题。
webgame重要的还是数据流的绕成圈,以及可玩性。
现在讲为:程序的健壮和数据流的清晰。
上面的功能,真的做出来,是不够玩的。就是没什么可玩性,做出来都没意义。
但是,仅仅是做出来,仍然是一件困难的事情。
游戏里涉及的东西太多。即使是很简单的游戏,即使webgame看上去很简单,甚至实际也很简单;做出来,非常困难。
没有过开发webgame经验的人,来策划webgame或者说开发webgame。会觉得很简单。大功能其实就那么几个。思路上也容易绕成圈。
实际情况是,一个非常简单的功能,当它需要绕圈的时候;当它需要交互的时候。这个功能就不再简单,而是复杂,相当的复杂。
这是当你不太明白设计模式的时候,如果你精通设计模式,那么功能就会简单起来。
特别是你想制作一款有足够的可玩性,能面向市场的产品,即使是初期思路非常简单,功能也很单纯。但你实际策划的时候,实际编程的时候。大量的数据、数值需要你去处理,大量的交互需要你去处理。这时候,开始的简单,已经变得复杂了。虽然从程序的角度讲,技术含量不高。
更准确的讲,是繁琐,非常繁琐。
优秀的策划是可以把数据表列出来,把数据走向清晰的列出来,放在你面前。这样的策划不多的。
当然,他不一定列得很准确,但是程序员能比较准确的理解他的意思。
引自:http://www.eb163.com/club/thread-1925-1-1.html
Rhythmbox 乱码如何解决
by X on 十二.02, 2009, under Ubuntu
在终端里:
先要执行以下代码:
sudo apt-get install python-mutagen ;
然后cd进MP3音乐所在的目录下执行
mid3iconv -e GBK *.mp3
把所有的MP3转换成GBK编码
重新装载播放表
ubuntu下几个好玩的Game
by X on 十二.02, 2009, under Ubuntu
tremulous
这个游戏使用了quake3的引擎,所以画面相当好,在ubuntu里面安装非常简单
sudo apt-get install tremulous
这个游戏只有多人版本,进入游戏之后把网络改成internet,然后get newserver,就可以获取网上的服务器了,服务器还比较多。找到人数和ping值都满意的游戏加入之后,按esc修改一下设置,比如分辨率什么的, 我是用的1280X1024,还非常流畅。进入之后好像可以选择两个种族,一个是人类,一个是外星怪物。玩法还是比较简单,就是杀人,然后得钱,买装备, 再杀人。
百战天虫
sudo apt-get install wormux
可爱的小虫子们跑到linux下面了
chromium雷电
画质一流,和windows版的没有太大区别,个人认为超越了windows版
sudo apt-get install chromium
这个是linux下面类似雷电的一个游戏,非常好玩,强烈推荐
linux下面的泡泡龙
sudo apt-get install frozen-bubble
画面可爱,适合和女朋友一起玩,上面的wormux也是不错的选择
sudo apt-get install tuxkart 跑跑卡丁车, ,效果一般
sudo apt-get install frozen-buble 桌面弹球2d游戏,音乐好听(我最喜欢这个游戏)
FooBillard:3D撞球游戏
安装方法:(在终端机中键入或复制贴上以下指令)
sudo apt-get install foobillard
执行方法:(在终端机中键入或复制贴上以下指令)
foobillard
Slune:3D企鹅开车冒险游戏,动作过关,内容非常丰富,也能玩不同类型的小游戏,如保龄球等
sudo apt-get install slune
TORCS:3D赛车游戏,玩起来还不错
安装方法:sudo apt-get install torcs
Astromenace:3D直式卷轴空间飞机射击游戏,画面相当精美
[url=http://www.viewizard.com/download/amenace046b.tar.bz2]http://www.viewizard.com/download/amenace046b.tar.bz2[/url]
完成后解压缩,进入解压缩后的资料夹,点击AstroMenace档案,即可开始游戏(64位元电脑请点击AstroMenace64执行)
(注:如果无法游戏,可开启Synaptic查询是否已安装以下所需相依套件:
libSDL (ver 1.2.6+), libopenal (ver 1.0+), libalut (ver 1.0+), libogg (ver 1.1+), libvorbis (ver 1.1+), libvorbisfile (ver 1.1+), libjpeg (ver 6b+). )
Nexuiz:3D第一人称枪战游戏,画面非常精致,很好玩,推荐给喜欢枪战游戏的朋友
下载档案: nexuiz-v222.zip
[url=http://sourceforge.net/project/downloading.php?groupname=nexuiz&filename=nexuiz-v222.zip&use_mirror=osdn]http://sourceforge.net/project/d … amp;use_mirror=osdn[/url]
完成后解压缩,进入解压缩后的资料夹,点击nexuiz-linux-glx.sh或nexuiz-linux-sdl.sh档案,选择执行,即可开始游戏
中国象棋cnchess0.2版
下载档案[url=http://www.magiclinux.org/people/yunfan/frogchess/cnchess- 0.2.bin.tar.bz2]http://www.magiclinux.org/people … ess-0.2.bin.tar.bz2[/url]
大型3D游戏
下载:[url=ftp://ftp.idsoftware.com/idstuff/]ftp://ftp.idsoftware.com/idstuff/[/url]
47M大小。
安装:#chmod u+x linuxq3ademo-1_11-6_x86_gz.sh //添加执行的权限
# ./linuxq3ademo-1_11-6_x86_gz.sh
安装过程中会提示一些问题,选择Y/N作答就可以了,这么简单的英文我就不给大家翻印了,主要是提示是否安装,是否接受许可协议,是否创建快捷方式,是否需要帮助文件等。
DOOM 1、2、3
下载之前先看一看你的配置,DOOM3这样的大型游戏要求您的机器P4 1.5,内存384MB,至少2.2G的硬盘空间,64M以上显存的显卡(曾经记得为了一款超级烂的《江湖》而升级计算机的情景)
下载地址:[url=ftp://ftp.idsoftware.com/idstuff/]ftp://ftp.idsoftware.com/idstuff/[/url] (下载人数过多,尽量在一些非高峰期下载)
安装和QUAKE3类似
虚幻竞技场2004(UT2004)
下载:
[url=http://www.unrealtournament.com/ut2004/downloads.php]http://www.unrealtournament.com/ut2004/downloads.php[/url]
选择LINUX的DEMO版本下载,大小275MB
安装一样
Invasion Battle of Survival:
2D模拟策略游戏,玩法类似红色警戒,满丰富的,地图也很多
游戏画面: [url=http://bos.seul.org/screenshots.shtml]http://bos.seul.org/screenshots.shtml[/url]
[安装方式]
下载游戏引擎:
[url=http://prdownloads.sourceforge.net/stratagus/stratagus-2.2.2-linux.tar.gz?download]http://prdownloads.sourceforge.n … nux.tar.gz?download[/url]
下载BOS游戏资料库:
[url=http://bos.seul.org/files/bos_2_0_1.tar.gz]http://bos.seul.org/files/bos_2_0_1.tar.gz[/url]
安装游戏所需套件:
sudo apt-get install lua50
下载完以上两个档案后解压缩,开启终端机,进入stratagus-2.2.2资料夹.例如:小弟要进入放置于桌面的stratagus-2.2.2资料夹,使用此指令:
cd ~/Desktop/stratagus-2.2.2
接下来将BOS游戏资料库连结到stratagus引擎.例如:如果小弟将data.bos资料夹放至于桌面,则使用此指令开始游戏:
./stratagus -d ~/Desktop/data.bos
享受游戏吧
《Nexuiz》官方网站[url=http://www.alientrap.org/nexuiz/]http://www.alientrap.org/nexuiz/[/url]
这是一款免费的跨平台的FPS游戏。一个完全夸越互联网的3D死亡竞赛游戏。游戏的目的就是利用完美的武器平衡和快节奏让死亡竞赛回归本源,远离现在射击 游戏日趋真实的趋势。你可以连接到主服务器与世界各地的玩家游戏。它使用DarkPlaces游戏引擎即Quake1引擎的改良版本,最多支持64人同时 在线,并且拥有HDR效果。在2005年5月31日推出1.0版本,现在通用的是于2007年1月26日更新的2.2.3版本。 Nexuiz标志是汉字的“力”字。
《America’s Army》官方网站[url=http://www.americasarmy.com/]http://www.americasarmy.com/[/url]
这是一款战术类多人FPS游戏,它由美国陆军免费制作,用来宣传自己帮助征兵工作。在2002年7月4日发布首版,现在使用的是2007年3月22日更新 的2.8.1版本。尽管有批评者指责它具有政治目的,但是精良的制作和强调真实性与战术合作使其大受欢迎。它的主页显示到2007年已经有超过800万人 注册,在2002年到2005年任意时间都有4500人在线,这足以使America’s Army成为十大在线游戏。育碧曾推出过它的改进版,它也有中文站。
《EnemyTerritory: QuakeWar》官方网站[url=http://www.enemyterritory.com/]http://www.enemyterritory.com/[/url]
这是Wolfenstein第一人称射击游戏的《Enemy Territory》(敌占区)的续作。游戏背景和Quake 4》一样都是Quake系列里的大背景,游戏里面加入超过40种的常见的以及特有的车辆,包括摩托车,坦克,直升机,无重力飞船等。采用增强型Doom3 引擎,将包含动态光影,昼夜循环,天气,植被等一系列先进的效果。在2006年E3展被评为最佳在线多人游戏。
《Tremulous》官方网站[url=http://tremulous.net/]http://tremulous.net/[/url]
这是一款开源的第一人称射击游戏,也具备网上对战功能,而且有即时战略元素。类似Gloom(quake 2的MOD)和Natural Selection(Half-Life的MOD)。游戏里有两个种族,人族和异形,各有优势和劣势。这个游戏已经被下载过20万次。在2006年MOD 游戏评选中被评为“最独特的游戏”。
《Vendetta》官方网站[url=http://www.vendetta-online.com/]http://www.vendetta-online.com/[/url]
Vendetta Online》是一款以宇宙为背景的MMORPG游戏。新玩家有8个小时的体验时间,如果你想继续每月则需支付5美元。玩家需在三个势力中选择一方,然后驾驶自己的宇宙飞船,自由飞行探险,因为该游戏的战斗风格是“FPS”、“实时”,所以动作性很强。
rhythmbox 显示歌词
by X on 十二.02, 2009, under Ubuntu
ubuntu9.10的rhythmbox已经自带了歌词显示功能,但我懒得研究,所以老是找不到歌词。
今天无聊上网找了一下。。发现一个很有趣的歌词显示插件--
鲁班歌词(RBLyrics):Rhythmbox的歌词下载显示插件(a plugin for rhythmbox to download lyrics and display by osd)
功能:
- 下载并显示歌词(download and display lyrics)
- 使用系统默认编辑器打开歌词文件(open lyrics file using system default editor)
- 未能精确查找歌词时,弹出歌词选择对话框供用户选择(pop choose lyrics dialog while no accurate lyrics found)
- 可通过插件管理器配置插件功能(totally configurable through plugin manager)
- 以上功能可能会随着项目进展有暂时改动(keep up with updates, discover yourself)
安装:
sudo apt-get install python-gconf python-gobject gnome-osd python-chardet subversion
mkdir -p ~/.gnome2/rhythmbox/plugins
svn checkout http://sogou-lyrics.googlecode.com/svn/trunk/ ~/.gnome2/rhythmbox/plugins/RBLyrics
之后重启rhythmbox.你会在插件管理器中发现鲁班歌词.
更新:
svn update ~/.gnome2/rhythmbox/plugins/RBLyrics/ 参考网址:http://code.google.com/p/sogou-lyrics/ 另外audacious的歌词插件是:OSD Lyrics
