ホームページ > バックエンド開発 > PHPチュートリアル > PHP でスタンドアロン ゲーム Snake を作成する方法

PHP でスタンドアロン ゲーム Snake を作成する方法

墨辰丷
リリース: 2023-03-29 09:32:01
オリジナル
5103 人が閲覧しました

php はスタンドアロン ゲームを作成できます。実装方法は次のとおりです。最初に「control.php」ファイルと「main.php」ファイルを作成し、最後にセッションを使用して記録します。スタンドアロン ゲームを作成する場所。

PHP でスタンドアロン ゲーム Snake を作成する方法

PHPでゲームを書くことはできますか?そんな疑問を持つ友人もいるはず。答えは「はい」です。PHP は大規模なゲームを作成するのにはまだ不十分ですが、カジュアル ゲームや知的なゲームなど、いくつかの小規模なスタンドアロン ゲームを作成することは可能です。この記事では、PHP を使用して Snake スタンドアロン ゲームを実装するためのコードを紹介します。主なアイデアは、セッションを通じて位置を記録することです。このアイデアは非常に賢明であり、誰にでもお勧めします。

Snake Game は、シンプルでプレイしやすい非常に古典的なスタンドアロン モバイル ゲームで、そのシンプルでプレイしやすいゲームプレイは多くのプレイヤーに愛されています。ヘビの頭の方向を制御して卵を食べると、ヘビが長くなり、ポイントが獲得できます。 Nokia の時代には、携帯電話業界全体で人気がありました。今日は、PHP を使用して Snake ゲームを実装する方法を見ていきます

早速、コードを以下に示します:

control。 php

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
  </head>
  <body>
     <a href="control.php?a=up">上<a/>       <?session_start(); echo $_SESSION[&#39;count&#39;];?>分<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[&#39;a&#39;]){
        case "up";
          $_SESSION[&#39;con&#39;]="up";
        break;
        case "down":
          $_SESSION[&#39;con&#39;]="down";
        break;
        case "left":
          $_SESSION[&#39;con&#39;]="left";
        break;
        case "right":
          $_SESSION[&#39;con&#39;]="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[&#39;ud&#39;];
  $_SESSION[&#39;lr&#39;];  
  $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[&#39;a&#39;])&&!isset($_SESSION[&#39;b&#39;])){
    $_SESSION[&#39;a&#39;] =rand(0,290);
    $_SESSION[&#39;b&#39;] =rand(0,290);
  }
  if(isset($_SESSION[&#39;a&#39;])&&isset($_SESSION[&#39;b&#39;])){
    imagerectangle($im,$_SESSION[&#39;a&#39;],$_SESSION[&#39;b&#39;],$_SESSION[&#39;a&#39;]+10,$_SESSION[&#39;b&#39;]+10,$red); 
  }
  if(abs(($_SESSION[&#39;lr&#39;]-$_SESSION[&#39;a&#39;]))<=5&&abs($_SESSION[&#39;ud&#39;]-$_SESSION[&#39;b&#39;])<=5){
    unset($_SESSION[&#39;a&#39;]);
    unset($_SESSION[&#39;b&#39;]);
    $_SESSION[&#39;count&#39;]++;
  }
  switch($_SESSION[&#39;con&#39;]){
    case "up";
      if($_SESSION[&#39;ud&#39;]>10)
        $_SESSION[&#39;ud&#39;]-=10;
      else
        $_SESSION[&#39;ud&#39;]=0;
    break;
    case "down":
      if($_SESSION[&#39;ud&#39;]<=280)
        $_SESSION[&#39;ud&#39;]+=10;
      else
        $_SESSION[&#39;ud&#39;]=290;
    break;
    case "left":
      if($_SESSION[&#39;lr&#39;]>10)
        $_SESSION[&#39;lr&#39;]-=10;
      else
        $_SESSION[&#39;lr&#39;]=0;
    break;
    case "right":
      if($_SESSION[&#39;lr&#39;]<=280)
        $_SESSION[&#39;lr&#39;]+=10;
      else
        $_SESSION[&#39;lr&#39;]=290;
    break;
  }
  for($i=0;$i<=$_SESSION[&#39;count&#39;];$i++){
    switch($_SESSION[&#39;con&#39;]){
      case "up":
        $_SESSION[&#39;udnext&#39;] = $_SESSION[&#39;ud&#39;]+10*$i;
        imagerectangle($im,$_SESSION[&#39;lr&#39;],$_SESSION[&#39;udnext&#39;],$_SESSION[&#39;lr&#39;]+10,$_SESSION[&#39;udnext&#39;]+10,$blue);
        // imagerectangle($im,$_SESSION[&#39;lr&#39;],$_SESSION[&#39;udtime&#39;][time()-$i],$_SESSION[&#39;lr&#39;]+10,$_SESSION[&#39;udtime&#39;][time()-$i]+10,$blue);
      break;
      case "down":
        $_SESSION[&#39;udnext&#39;] = $_SESSION[&#39;ud&#39;]-10*$i;
        imagerectangle($im,$_SESSION[&#39;lr&#39;],$_SESSION[&#39;udnext&#39;],$_SESSION[&#39;lr&#39;]+10,$_SESSION[&#39;udnext&#39;]+10,$blue);
        // imagerectangle($im,$_SESSION[&#39;lr&#39;],$_SESSION[&#39;udtime&#39;][time()+$i],$_SESSION[&#39;lr&#39;]+10,$_SESSION[&#39;udtime&#39;][time()+$i]+10,$blue);
      break;
      case "left":
        $_SESSION[&#39;lrnext&#39;] = $_SESSION[&#39;lr&#39;]+10*$i;
        imagerectangle($im,$_SESSION[&#39;lrnext&#39;],$_SESSION[&#39;ud&#39;],$_SESSION[&#39;lrnext&#39;]+10,$_SESSION[&#39;ud&#39;]+10,$blue);
        // imagerectangle($im,$_SESSION[&#39;lrtime&#39;][time()-$i],$_SESSION[&#39;ud&#39;],$_SESSION[&#39;lrtime&#39;][time()-$i]+10,$_SESSION[&#39;ud&#39;]+10,$blue);
      break;
      case "right":
        $_SESSION[&#39;lrnext&#39;] = $_SESSION[&#39;lr&#39;]-10*$i;
        imagerectangle($im,$_SESSION[&#39;lrnext&#39;],$_SESSION[&#39;ud&#39;],$_SESSION[&#39;lrnext&#39;]+10,$_SESSION[&#39;ud&#39;]+10,$blue);
        // imagerectangle($im,$_SESSION[&#39;lrtime&#39;][time()+$i],$_SESSION[&#39;ud&#39;],$_SESSION[&#39;lrtime&#39;][time()+$i]+10,$_SESSION[&#39;ud&#39;]+10,$blue);
      break;
    }
    //imagerectangle($im,$_SESSION[&#39;lr&#39;],$_SESSION[&#39;ud&#39;],$_SESSION[&#39;lr&#39;]+10,$_SESSION[&#39;ud&#39;]+10,$blue);
  }
  header("Content-Type: image/jpeg");
  imagejpeg($im);
  imagedestroy($im);  
?>
ログイン後にコピー

概要: 以上がこの記事の全内容です、皆様の学習に少しでもお役に立てれば幸いです。

関連する推奨事項:

phpブレークポイント転送再開を実現するためのファイルの分割とマージの詳細な説明

php ユーザー情報を取得するためのWeChat開発の実装

php検証コードの実装方法アプレット

以上がPHP でスタンドアロン ゲーム Snake を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート