好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

网页游戏php代码 php小游戏代码

很多站长朋友们都不太清楚网页游戏php代码,今天小编就来给大家整理网页游戏php代码,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 怎样查看一个网页的php源代码 2、 怎么制作一个网页游戏 3、 网页游戏是不是都是用php来写的 4、 本人新手,求一个PHP的网页问答游戏代码!!高分!! 5、 网页游戏能用PHP做后端开发吗? 怎样查看一个网页的php源代码

PHP是后端语言,前端是无法查看的,前端看到的是最终运算之后的结果,PHP源代码是无法查看的。如果能直接查看PHP源代码那还得了,如果你是单纯想看看网页代码,那就在浏览器右键-查看源码就可以看见。

怎么制作一个网页游戏

一、简单的程序框架。

webgame程序构成:

三大部分。

第一是数据流程。第二是程序。第三是美术。

其中,数据流程包括了功能。也只有在功能中才能体现数据流程。

数据流程相当的麻烦,后面再讨论。

比如最简单的卖买产品。

要实现这个功能。

那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。

表的问题都简单了。关键是这个物品有什么用。这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。

最后,这些数据得绕成一个圈。

绕圈是一件困难的事情。特别是功能和道具多了起来的时候。难度是2的n次方。

美术:

UI。简洁漂亮的界面总会有好处。

小图标。道具,地图,装备。一类至少10个吧?大体上百把个是需要的。

程序分5个部分:

服务器定时器。(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。

功能页面、功能函数。主要就是数据存取,判断,数据走向。

ajax函数。(可选)某些需要伪即时的功能要用到。

javascript函数。(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。

数据库。一大堆基础数据表和详细数据表。基础数据表:比如等级1到等级100的用户的属性初始值。详细数据表:每个用户的具体属性。

二、一个详细的例子。

单纯的讨论数据流程是件痛苦的事情。

讨论程序而不给代码也是比较痛苦。

这里用的是php+mysql的。

那就按一个超简单的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分钟吧。当然服务器够牛的话,几秒钟都可以。)

每次执行什么代码呢?

首先得新建一个定时器任务的表。目的就是让定时器知道需要执行哪些程序和数据的更新。表内容比如:城市资源更新。当然,这个表可要可不要。建立的好处是方便处理类似保护状态不产生资源之类的问题。

服务端程序:

获得当前服务器时间。

获得当前需要更新城市。

判断服务器时间与$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 , “用户名”, “[email=d203!@#ghj]密码[/email]“, “数据库名”);

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的代码不能直接用。只是一部分。

地图、城市、基本上算是有了。

接下来是城市里的建筑。

上面讲的资源增加,其实定位在建筑上更准确。不过建筑的分类和数值会复杂很多。那是策划考虑的问题。

建筑上,只讲一个前台的修建效果。

当然,这个效果是可有可无。你可以直接给个类似新闻列表的显示,再加个倒计时就行。

显示的效果就是,点修建后。不刷新页面,调入一张动画图片。并在时间到后自动转换为其他图片。

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

后台部分,把时间到增加资源的代码改为时间到增加或更新建筑就行了。又是增加N个表。。

建筑基础表:产出,类型,图片等等。。

建筑详细表:属于哪个城市,可以在城市表里关联。关联的方式不同会对程序有很大的影响。各种关联方式都行,但是一旦关联方式确定后,最好别改动。

现在建筑也有了。用类似的定时方式,打工,征兵等等都可以实现。

战斗,

兵的参数:兵种,数量,攻击,防御等等。

战斗的临时表:谁的兵,打谁,出发时间,战斗时间,战斗结果。

这里的几个字到是简单。实际的表会复杂一些。

webgame中,战斗的过程分两种,

一种是给出双方参数,时间到,就根据公式计算结果。

一种是半即时或者即时的战斗,可以边打边喝药边用技能的那种。

第一种流程。

点出兵。这时候,兵的参数,出发时间,到达时间,都记录进战斗临时表。

定时器中,处理战斗的部分,判断时间是否到开打的时候。到开打的时间了,则取得被攻击方的兵的参数。然后通过几个公式计算结果。处理结果,比如谁的兵挂了多少,战场掉落了多少钱,城市被谁抢到了。一大堆判断以及updata。(这里的定时器处理和获得资源的定时器处理是很类似的。)

最后把结果分别发给双方。(又涉及到一个短信息系统。)

第二种流程。

点攻击。马上就处理数据。打打npc好做。玩家之间对战,也可以把被攻击的玩家当成npc来处理。

两个人或两人以上即时战斗。需要用到ajax了。目前在技术上和理论上是没问题的,还没实际写代码,所以不好讲。

很简单的公式,两种战斗都可以用到:

intval(sqrt($User_B_AP)-sqrt($User_A_DP));

根号下攻击-根号下防御=伤害。

网页游戏是不是都是用php来写的

网页游戏并不是都用php编写程序。

网页游戏需要用到以下开发工具:

1,ActionScript,游戏开发程序中较为热门的开发工具。

2,Flash,网页游戏开发的主力开发工具。

3,Photoshop,游戏后期画面处理。

4,JAVA开发工具,游戏程序设计。

5,php,登陆页面等动态页面的辅助设计。

网页游戏中php只提取用户数据,登陆信息,是网页游戏中的辅助型开发工具,并不是网页游戏中最主要的开发程序。

本人新手,求一个PHP的网页问答游戏代码!!高分!!

因为你都说了对php不了解,所以我给一个比较简单的实现方法

做一个巨大的表单

只有一个提交按钮

做完所有题目后提交一次

<form method="post">

  <ul>

    <li>题目1</li>

    <li>

      <input name="q1" type="radio" value="1">

      答案1

      <input name="q1" type="radio" value="2">

      答案2

      <input name="q1" type="radio" value="3">

      答案3

      <input name="q1" type="radio" value="4">

      答案4</li>

      <?php

      //判断是否提交了

      if($_POST['done']){

        //判断答案是否正确

        if($_POST['q1'] == 1){

            echo '<li>回答正确</li>';

        }else{

            echo '<li>回答错误,正确答案是答案1</li>';

        }

      }

      ?>

    <li>题目2</li>

    <li>

      <input name="q2" type="radio" value="1">

      答案1

      <input name="q2" type="radio" value="2">

      答案2

      <input name="q2" type="radio" value="3">

      答案3

      <input name="q2" type="radio" value="4">

      答案4</li>

      <?php

      if($_POST['done']){

        if($_POST['q2'] == 4){

            echo '<li>回答正确</li>';

        }else{

            echo '<li>回答错误,正确答案是答案1</li>';

        }

      }

      //依次类推

      ?>

      <li><input name="done" type="submit"></li>

  </ul>

</form>

注意,每组单选的name不能重复

网页游戏能用PHP做后端开发吗?

当然可以。最好走HTTP,也可以做网络编程,而且写代码超简单,1个函数就可以建一个服务器端。stream_socket_server()

多线程不是什么好主意,你可以用php libevent扩展,异步高并发。PHP还有很多网络的扩展包。

PHP的开发效率高,.net Java ,你足够有钱,可以用。

关于网页游戏php代码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于网页游戏php代码 php小游戏代码的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did167394
更新时间:2023-03-28   阅读:48次

上一篇: 关于php替换txt内容的信息

下一篇:php传递方法 php传参数

相关资讯

最新资料更新

  • 1.DEDECMS显示英文日期时间的方法
  • 2.dedecms教程之dedecms生成速度提速的方法
  • 3.dedecms首页调用随机文章及自动更新功能实例
  • 4.DEDECMS开启绝对地址PC端跳转到静态手机端实现方法
  • 5.DEDE列表调用有缩图显示缩图,无缩图则不显示缩图的方法
  • 6.dedeCMS使用list标签调用文章日期的方法
  • 7.dedecms织梦模板点击图片进入下一分页或下篇文章标签
  • 8.dedecms图片集添加水印的方法
  • 9.Dedecms实现tags云标签随机颜色与字体大小方法详解
  • 10.详细的DedeCMS(织梦)目录权限安全设置教程
  • 11.dedecms织梦TAG标签显示单个标签共有多少篇文章的方法
  • 12.开源织梦(dedecms)快速搬家图文教程
  • 13.织梦后台登录一直提示验证码不正确一直不能登录成功
  • 14.详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版
  • 15.dedecms系统列表页调用tag标签同时带上链接
  • 16.织梦DedeCMS添加变量报错Request var not allow!的解决办法
  • 17.dedecms首页添加根据IP访问区域跳转对应页面的方法
  • 18.织梦dedecms中自定义表单必填项的设置方法
  • 19.dedecms会员注册成功后直接跳转到验证的邮箱地址
  • 20.织梦dede所有实用标签调用方法搜集整理

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]