php实现贪吃蛇小游戏

5年以前  |  阅读数:1074 次  |  编程语言:PHP 

贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用php来实现贪吃蛇小游戏

废话不多说,代码奉上:

control.php


    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8"/>
      </head>
      <body>
         <a href="control.php?a=up">上<a/>       <?session_start(); echo $_SESSION['count'];?>分<br/>
        <a href="control.php?a=left">左<a/> <a href="control.php?a=right">右<a/><br/>
         <a href="control.php?a=down">下<a/>
        <?

          switch($_GET['a']){
            case "up";
              $_SESSION['con']="up";
            break;
            case "down":
              $_SESSION['con']="down";
            break;
            case "left":
              $_SESSION['con']="left";
            break;
            case "right":
              $_SESSION['con']="right";
            break;
          }
        ?>
      </body>
    </html>

main.php


    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-9"/>
        <meta http-equiv="refresh" content="0.5"/>
      </head>
      <frameset rows="95,*" border="1" noresize >
        <frame src="control.php" name="top"/>
        <frame src="./tcs.php" name="menu"/>
      </frameset>
    </html>

tcs.php


    <?php
      session_start();
      $_SESSION['ud'];
      $_SESSION['lr'];  
      $im = imagecreatetruecolor(300,300);
      $blue = imagecolorallocate($im,0,0,255);
      $red = imagecolorallocate($im,255,0,0);
      $c1 = imagecolorallocate($im,200,200,200);
      imagefill($im,0,0,$c1);
      if(!isset($_SESSION['a'])&&!isset($_SESSION['b'])){
        $_SESSION['a'] =rand(0,290);
        $_SESSION['b'] =rand(0,290);
      }
      if(isset($_SESSION['a'])&&isset;($_SESSION['b'])){
        imagerectangle($im,$_SESSION['a'],$_SESSION['b'],$_SESSION['a']+10,$_SESSION['b']+10,$red); 
      }
      if(abs(($_SESSION['lr']-$_SESSION['a']))<=5&&abs;($_SESSION['ud']-$_SESSION['b'])<=5){
        unset($_SESSION['a']);
        unset($_SESSION['b']);
        $_SESSION['count']++;
      }
      switch($_SESSION['con']){
        case "up";
          if($_SESSION['ud']>10)
            $_SESSION['ud']-=10;
          else
            $_SESSION['ud']=0;
        break;
        case "down":
          if($_SESSION['ud']<=280)
            $_SESSION['ud']+=10;
          else
            $_SESSION['ud']=290;
        break;
        case "left":
          if($_SESSION['lr']>10)
            $_SESSION['lr']-=10;
          else
            $_SESSION['lr']=0;
        break;
        case "right":
          if($_SESSION['lr']<=280)
            $_SESSION['lr']+=10;
          else
            $_SESSION['lr']=290;
        break;
      }
      for($i=0;$i<=$_SESSION['count'];$i++){
        switch($_SESSION['con']){
          case "up":
            $_SESSION['udnext'] = $_SESSION['ud']+10*$i;
            imagerectangle($im,$_SESSION['lr'],$_SESSION['udnext'],$_SESSION['lr']+10,$_SESSION['udnext']+10,$blue);
            // imagerectangle($im,$_SESSION['lr'],$_SESSION['udtime'][time()-$i],$_SESSION['lr']+10,$_SESSION['udtime'][time()-$i]+10,$blue);
          break;
          case "down":
            $_SESSION['udnext'] = $_SESSION['ud']-10*$i;
            imagerectangle($im,$_SESSION['lr'],$_SESSION['udnext'],$_SESSION['lr']+10,$_SESSION['udnext']+10,$blue);
            // imagerectangle($im,$_SESSION['lr'],$_SESSION['udtime'][time()+$i],$_SESSION['lr']+10,$_SESSION['udtime'][time()+$i]+10,$blue);
          break;
          case "left":
            $_SESSION['lrnext'] = $_SESSION['lr']+10*$i;
            imagerectangle($im,$_SESSION['lrnext'],$_SESSION['ud'],$_SESSION['lrnext']+10,$_SESSION['ud']+10,$blue);
            // imagerectangle($im,$_SESSION['lrtime'][time()-$i],$_SESSION['ud'],$_SESSION['lrtime'][time()-$i]+10,$_SESSION['ud']+10,$blue);
          break;
          case "right":
            $_SESSION['lrnext'] = $_SESSION['lr']-10*$i;
            imagerectangle($im,$_SESSION['lrnext'],$_SESSION['ud'],$_SESSION['lrnext']+10,$_SESSION['ud']+10,$blue);
            // imagerectangle($im,$_SESSION['lrtime'][time()+$i],$_SESSION['ud'],$_SESSION['lrtime'][time()+$i]+10,$_SESSION['ud']+10,$blue);
          break;
        }
        //imagerectangle($im,$_SESSION['lr'],$_SESSION['ud'],$_SESSION['lr']+10,$_SESSION['ud']+10,$blue);
      }
      header("Content-Type: image/jpeg");
      imagejpeg($im);
      imagedestroy($im);  
    ?>
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例