php 网页游戏开发入门知识

文章介绍了Webgame的基础构建,包括数据库中的地图、城市和建筑表的设计,以及如何通过循环显示这些数据。此外,讨论了客户端资源的伪同步更新,强调了服务器端定时器和JavaScript倒计时在确保资源同步中的作用。
摘要由CSDN通过智能技术生成

 
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>"; 



我们不去考虑网络游戏的可玩性,数值平衡等等问题。我们先只考虑一个简单例子的实现。
那么一个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

客户端特殊情况触发:
因为客户端显示的资源情况是伪同步,所以当客户端使用该资源的时候。需要服务端将当前的实际资源更新,属于定时器处理的时间也需要更新。
即,当客户端触发涉及资源的情况时,立即更新当前资源。同时更新定时器中会用到的$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> 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值