国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問

這篇具有很好參考價值的文章主要介紹了Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近,我發(fā)現了一個超級強大的人工智能學習網站。它以通俗易懂的方式呈現復雜的概念,而且內容風趣幽默。我覺得它對大家可能會有所幫助,所以我在此分享。點擊這里跳轉到網站。

前言

網:我們通常說的是互聯網;站:可以理解成在互聯網上的一個房子。把互聯網看做一個城市,城市里面的每一個房子就是一個站點,房子里面放著你的資源,那如果有人想要訪問你房子里面的東西怎么辦?

在現實生活中,去別人家首先要知道別人的地址,某某區(qū)某某街道,幾號,在互聯網中也有地址的概念,就是ip。通過ip我們就能找到在互聯網上面的站點,端口可以看做是這個房子的入口,不同的入口所看到的東西也就不一樣,如從大門(80端口)進是客廳,從窗戶(8080端口)進是書房。

接下來我們將通過簡單幾步來在ubuntu搭建一個web站點 html小游戲,并使用cpolar內網穿透將其發(fā)布到公網上,使得公網用戶也可以正常訪問到本地web站點的小游戲。

1. 本地環(huán)境服務搭建

apach2是一個服務,也可以看做一個容器,也就是上面說的房子,運行在ubuntu里,這個服務可以幫助我們把我們自己的網站頁面通過相應的端口讓除本機以外的其他電腦訪問。

下載apach2

sudo apt install apache2 php -y

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

下載好后啟動apache2

sudo service apache2 restart

然后打開Ubuntu 瀏覽器,輸入:http://localhost 即可看到我們apache 默認的頁面,此時說明本地站點已經搭建好了。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

進入Apache默認服務器主目錄路徑,這個目錄放的是想要讓別人看到的資源,如一張圖片,一個html頁面等

cd /var/www/html

進入后刪掉index.html這個文件,由于apache默認頁面并不是我們自己想要的頁面,我們想要換成自己喜歡的頁面,所以需要刪掉.執(zhí)行以下命令:

sudo rm -rf index.html

為了達到測試效果,我們設置一個html頁面小游戲,創(chuàng)建名稱為game.html的頁面

sudo vim game.html

i鍵 進入編輯模式,復制以下html代碼進去(復制全部)

<!DOCTYPE html>
<html>
    <head><h4>Take it Easy!Please playing Game</h4></head>
    <body>
        <div></div>
        <!-- 4個board -->
        <div id="board1" style="position: absolute; width:80px; height:10px; left:420px; 
        top:555px; background-color: cadetblue;"></div>
        <div id="board2" style="position: absolute; width:80px; height:10px; left:520px; 
        top:555px; background-color: cadetblue;"></div>
        <div id="board3" style="position: absolute; width:80px; height:10px; left:620px; 
        top:555px; background-color: cadetblue;"></div>
        <div id="board4" style="position: absolute; width:80px; height:10px; left:720px; 
        top:555px; background-color: cadetblue;"></div>
        <!-- 小球 -->
        <div id="ball" class="circle" style="width:20px; 
        height:20px; background-color:crimson; border-radius: 50%; position:absolute; 
        left:600px; top:100px"></div>
        <!-- 框 -->
        <div id="box" style="border: 5px solid #555555; width:400px; height:550px; display=hide"></div>
        <!-- 分數 過的board越多,分數越高 -->
        <div id="score" style="width:200px; height:10px; position:absolute; left:900px; 
            font-family:'隸書'; font-size: 30px;">score: 0</div>
        <!-- 游戲結束 -->
        <div id="gg" style="width:200px; height:10px; position:absolute; left:550px; top:200px;
        font-family:'隸書'; font-size: 30px; display: none;">Game Over</div>
        <script>
            // 設置box的樣式
            var box = document.getElementById("box");
            box.style.position = "absolute";
            box.style.left = "400px";
            // 設置board的樣式
            var board1 = document.getElementById("board1");
            var board2 = document.getElementById("board2");
            var board3 = document.getElementById("board3");
            var board4 = document.getElementById("board4");
            // 聲音
            var shengyin = new Audio();
            shengyin.src = "聲音2.mp3";
            shengyinFlag = 0; // 用來表示小球在第幾塊board上
            // 鍵盤事件函數
            var ball = document.getElementById("ball");
            document.onkeydown = f;
            function f(e){
                var e = e || window.event;
                switch(e.keyCode){
                    case 37:
                        // 按下左鍵,小球左移,但不要超過左邊框
                        if(ball.offsetLeft>=box.offsetLeft + 10)
                            ball.style.left = ball.offsetLeft - 8 + "px";
                        break;
                    case 39:
                        // 按下右鍵,小球右移,但不要超過由邊框
                        if(ball.offsetLeft<=box.offsetLeft+box.offsetWidth-ball.offsetWidth-10)
                            ball.style.left = ball.offsetLeft + 8 + "px";
                        break;
                    case 32:

                }
            }
            // 定義一個分數變量
            var fenshu = 0;
            // 定義一個函數,移動給定的一個board
            function moveBoard(board)
            {
                var t1 = board.offsetTop;
                if(t1<=0)
                {
                    // 如果board移到最上面了,就隨機換個水平位置,再移到最下面
                    t2 = Math.floor(Math.random() * (720- 420) + 420);
                    board.style.left = t2 + "px";
                    board.style.top = "555px";
                    fenshu += 1; //分數增加1
                    document.getElementById("score").innerHTML = "score " + fenshu;
                }
                    // 
                else
                    board.style.top = board.offsetTop - 1 + "px";
            }
            // 定義小球的速度變量
            var startSpeed = 1;
            var ballSpeed =startSpeed;
            // step函數是游戲界面的單位變化函數
            function step()
            {
                // board直接上下隔得太近,就逐個移動,否則,同時移動
                var t1 = Math.abs(board1.offsetTop - board2.offsetTop);
                var t2 = Math.abs(board2.offsetTop - board3.offsetTop);
                var t3 = Math.abs(board3.offsetTop - board4.offsetTop);
                // 定義一個board之間的間隔距離
                var t4 = 140;
                if(t1<t4)
                {
                    moveBoard(board1);
                }
                else if(t2<t4)
                {
                    moveBoard(board1);
                    moveBoard(board2);
                }
                else if(t3<t4)
                {
                    moveBoard(board1);
                    moveBoard(board2);
                    moveBoard(board3);
                }
                else
                {
                    moveBoard(board1);
                    moveBoard(board2);
                    moveBoard(board3);
                    moveBoard(board4);
                }
                // 定義小球的垂直移動規(guī)則,1、向下勻加速運動,2、如果碰到board就被board持續(xù)抬上去,
                // 直到按左右鍵離開了該board

                // 如果小球的縱坐標等于某個board的縱坐標,就被抬起
                var t5 = Math.abs(ball.offsetTop - board1.offsetTop);
                var t6 = Math.abs(ball.offsetTop - board2.offsetTop);
                var t7 = Math.abs(ball.offsetTop - board3.offsetTop);
                var t8 = Math.abs(ball.offsetTop - board4.offsetTop);
                if(t5<=ball.offsetHeight && t5>0 && ball.offsetLeft>=board1.offsetLeft-ball.offsetWidth && ball.offsetLeft<=board1.offsetLeft+board1.offsetWidth)
                {
                    ball.style.top = board1.offsetTop - ball.offsetHeight + "px";
                    ballSpeed = startSpeed;
                    if(shengyinFlag != 1)
                    {
                        shengyin.play();
                        shengyinFlag = 1;
                    }
                }
                else if(t6<=ball.offsetHeight && t6>0 && ball.offsetLeft>=board2.offsetLeft-ball.offsetWidth && ball.offsetLeft<=board2.offsetLeft+board2.offsetWidth)
                {
                    ball.style.top = board2.offsetTop - ball.offsetHeight + "px";
                    ballSpeed = startSpeed;
                    if(shengyinFlag != 2)
                    {
                        shengyin.play();
                        shengyinFlag = 2;
                    }
                }
                else if(t7<=ball.offsetHeight && t7>0 && ball.offsetLeft>=board3.offsetLeft-ball.offsetWidth && ball.offsetLeft<=board3.offsetLeft+board3.offsetWidth)
                {
                    ball.style.top = board3.offsetTop - ball.offsetHeight + "px";
                    ballSpeed = startSpeed;
                    if(shengyinFlag != 3)
                    {
                        shengyin.play();
                        shengyinFlag = 3;
                    }
                }
                else if(t8<=ball.offsetHeight && t8>0 && ball.offsetLeft>=board4.offsetLeft-ball.offsetWidth && ball.offsetLeft<=board4.offsetLeft+board4.offsetWidth)
                {
                    ball.style.top = board4.offsetTop - ball.offsetHeight + "px";
                    ballSpeed = startSpeed;
                    if(shengyinFlag != 4)
                    {   
                        shengyin.play();
                        shengyinFlag = 4;
                    }
                }
                else
                {
                    ballSpeed = ballSpeed + 0.01; // 數字相當于加速度
                    ball.style.top = ball.offsetTop + ballSpeed + "px";
                }
                // ballSpeed = ballSpeed + 0.01; // 數字相當于加速度
                // ball.style.top = ball.offsetTop + ballSpeed + "px";

                // 如果小球跑出來box,就結束游戲
                if(ball.offsetTop==0 || ball.offsetTop>=box.offsetTop+box.offsetHeight)
                {
                    clearInterval(gameover);
                    ball.style.display = 'none';
                    board1.style.display = 'none';
                    board2.style.display = 'none';
                    board3.style.display = 'none';
                    board4.style.display = 'none';
                    var gg = document.getElementById("gg"); //顯示游戲結束
                    gg.style.display = 'block';
                }
            }

            var gameover = setInterval("step();", 8);
        </script>
    </body>
</html>

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

復制完后按Esc鍵退出編輯,接著輸入冒號:wq保存退出即可

2. 局域網測試訪問

接著瀏覽器輸入http://localhost/game.html,即可看到html頁面的小游戲站點,由于部署的是靜態(tài)站點,不需要重啟服務。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

3. 內網穿透

由于這個站點目前只能在本地被訪問到,為了使所有人都可以訪問,我們需要將這個本地基礎站點發(fā)布到公網。這里我們可以通過cpolar內網穿透工具來實現,它支持 http/https/tcp協議,無需公網IP ,也不用設置路由器,可以很容易將本地站點發(fā)布到公網供所有人訪問。

3.1 ubuntu本地安裝cpolar

如何在ubuntu上安裝cpolar內網穿透,請參考這篇文章教程

  • Ubuntu用戶安裝Cpolar內網穿透
3.2 創(chuàng)建隧道

cpolar安裝成功之后,在瀏覽器上訪問本地9200端口,登錄cpolar web UI管理界面。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

點擊左側儀表盤的隧道管理——創(chuàng)建隧道:

  • 隧道名稱:可自定義,注意不要重復
  • 協議:http
  • 本地地址:80
  • 端口類型:隨機域名
  • 地區(qū):China vip

點擊創(chuàng)建

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

隧道創(chuàng)建成功后,點擊左側的狀態(tài)——在線隧道列表,可以看到剛剛創(chuàng)建的隧道已經有生成了相應的公網地址,將其復制下來,接下來測試訪問一下。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

3.3 測試公網訪問

打開瀏覽器訪問剛剛所復制的公網地址,注意,后面要加上路徑/game.html,出現游戲界面即成功。

游戲控制使用:鍵盤上下左右鍵

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

4. 配置固定二級子域名

由于以上所創(chuàng)建的隧道選擇的是隨機域名,所生成的公網地址會在24小時內隨機變化,對于需要長期訪問的用戶來講較為不方便。不過我們可以為其配置一個固定的二級子域名來進行訪問,改地址不會隨機變化。

注意:配置固定二級子域名功能需要升級至基礎版套餐或以上才支持。

4.1 保留一個二級子域名

登錄cpolar官網后臺,點擊左側的預留,找到保留二級子域名:

  • 地區(qū):選擇China VIP
  • 二級域名:可自定義填寫
  • 描述:即備注,可自定義填寫

點擊保留

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

提示子域名保留成功,復制所保留的二級子域名

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

4.2 配置二級子域名

訪問本地9200端口登錄cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的隧道,點擊右側的編輯

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

修改隧道信息,將保留成功的二級子域名配置到隧道中

  • 域名類型:選擇二級子域名
  • Sub Domain:填寫保留成功的二級子域名,本例為test01

點擊更新

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

提示更新隧道成功,點擊左側儀表盤的狀態(tài)——在線隧道列表,可以看到公網地址已經更新為保留成功的二級子域名,將其復制下來。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器

4.3 測試訪問公網固定二級子域名

我們使用任意瀏覽器,輸入剛剛配置成功的公網固定二級子域名+/game.html就可看到我們創(chuàng)建的站點小游戲了,且該地址不會再隨機變化了。

sm-1700315672030)]

修改隧道信息,將保留成功的二級子域名配置到隧道中

  • 域名類型:選擇二級子域名
  • Sub Domain:填寫保留成功的二級子域名,本例為test01

點擊更新

[外鏈圖片轉存中…(img-aTAaWoTT-1700315672030)]

提示更新隧道成功,點擊左側儀表盤的狀態(tài)——在線隧道列表,可以看到公網地址已經更新為保留成功的二級子域名,將其復制下來。

[外鏈圖片轉存中…(img-Gk4rSFEC-1700315672031)]

4.3 測試訪問公網固定二級子域名

我們使用任意瀏覽器,輸入剛剛配置成功的公網固定二級子域名+/game.html就可看到我們創(chuàng)建的站點小游戲了,且該地址不會再隨機變化了。

Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問,小智帶你閑聊,ubuntu,linux,運維,服務器文章來源地址http://www.zghlxwxcb.cn/news/detail-751406.html

到了這里,關于Ubuntu本地快速搭建web小游戲網站,公網用戶遠程訪問的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 搭建Ubuntu本地web小游戲網站并通過內網穿透實現公網用戶遠程訪問的步驟指南

    搭建Ubuntu本地web小游戲網站并通過內網穿透實現公網用戶遠程訪問的步驟指南

    ?? 鴿芷咕 :個人主頁 ??? 個人專欄 : 《高效編程技巧》《cpolar》 ??生活的理想,就是為了理想的生活! 網:我們通常說的是互聯網;站:可以理解成在互聯網上的一個房子。把互聯網看做一個城市,城市里面的每一個房子就是一個站點,房子里面放著你的資源,那如果

    2024年02月10日
    瀏覽(22)
  • 【貪吃蛇小游戲】寶塔面板快速搭建貪吃蛇小游戲Web網站 - 無需云服務器

    【貪吃蛇小游戲】寶塔面板快速搭建貪吃蛇小游戲Web網站 - 無需云服務器

    轉載自遠程內網穿透的文章:Linux使用寶塔面板搭建網站,并內網穿透實現公網訪問 寶塔面板作為簡單好用的服務器運維管理面板,它支持Linux/Windows系統(tǒng),我們可用它來一鍵配置LAMP/LNMP環(huán)境、網站、數據庫、FTP等,通過Web端輕松管理服務器。 以下教程,我們將演示使用寶塔

    2024年02月05日
    瀏覽(28)
  • 寶塔面板快速搭建貪吃蛇小游戲web網站 - 無需云服務器,網站發(fā)布上線

    寶塔面板快速搭建貪吃蛇小游戲web網站 - 無需云服務器,網站發(fā)布上線

    轉載自遠程內網穿透的文章:Linux使用寶塔面板搭建網站,并內網穿透實現公網訪問 寶塔面板作為簡單好用的服務器運維管理面板,它支持Linux/Windows系統(tǒng),我們可用它來一鍵配置LAMP/LNMP環(huán)境、網站、數據庫、FTP等,通過Web端輕松管理服務器。 以下教程,我們將演示使用寶塔

    2024年02月05日
    瀏覽(36)
  • 【內網穿透】在Ubuntu搭建Web小游戲網站,并將其發(fā)布到公網訪問

    【內網穿透】在Ubuntu搭建Web小游戲網站,并將其發(fā)布到公網訪問

    目錄 前言 1. 本地環(huán)境服務搭建 2. 局域網測試訪問 3. 內網穿透 3.1 ubuntu本地安裝cpolar 3.2 創(chuàng)建隧道 3.3 測試公網訪問 4. 配置固定二級子域名 4.1 保留一個二級子域名 4.2 配置二級子域名 4.3 測試訪問公網固定二級子域名 網:我們通常說的是互聯網;站:可以理解成在互聯網上的

    2024年02月08日
    瀏覽(25)
  • 使用Node.js服務搭建本地web網頁小游戲并實現遠程訪問

    使用Node.js服務搭建本地web網頁小游戲并實現遠程訪問

    Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web應用程序框架。 Node.js自帶運行時環(huán)境可在Javascript腳本的基礎上可以解釋和執(zhí)行(這類似于JVM的Java字節(jié)碼)。這個運行時允許在瀏覽器以外的任何機器上執(zhí)行JavaScript代碼。由于這種運行時在Node.js上,所以JavaScript現在可以在服務

    2024年02月04日
    瀏覽(19)
  • Linux系統(tǒng)之部署網頁小游戲合集網站

    games項目 Games項目是一個網頁小游戲合集的網站,用戶可以在瀏覽器中直接打開并試玩其中的游戲。該網站已經自動安裝了一些開源的小游戲,同時也支持定制功能,用戶可以根據自己的需求對游戲進行定制。這個項目的目的是為了提供一個方便、快捷并且開放的平臺,讓用

    2024年02月20日
    瀏覽(39)
  • python快速實現2048小游戲

    python快速實現2048小游戲

    《2048》是一款比較流行的數字游戲,最早于2014年3月20日發(fā)行。原版2048首先在GitHub上發(fā)布,原作者是Gabriele Cirulli,后被移植到各個平臺。這款游戲是基于《1024》和《小3傳奇》的玩法開發(fā)而成的新型數字游戲。 操作指南: 每次可以選擇上下左右其中一個方向去滑動,每滑動

    2024年02月11日
    瀏覽(24)
  • python快速實現簡易貪吃蛇小游戲

    python快速實現簡易貪吃蛇小游戲

    貪吃蛇(也叫做貪食蛇)游戲是一款休閑益智類游戲,有PC和手機等多平臺版本。既簡單又耐玩。該游戲通過控制蛇頭方向吃蛋,從而使得蛇變得越來越長。? 貪吃蛇游戲最初為單機模式,后續(xù)又陸續(xù)推出團戰(zhàn)模式、賞金模式、挑戰(zhàn)模式等多種玩法。? 另外還有一種名為“貪

    2024年02月13日
    瀏覽(26)
  • Docker游戲Dos小游戲,一個web版的dos游戲庫

    Docker游戲Dos小游戲,一個web版的dos游戲庫

    ? ? ? ? 80、90后的我們肯定認識下面的東西,想起那個時候插卡打游戲,每周六周天晚上熬夜打游戲,就是為了通關。那么我們今天的教程就是和這個有關~ ? ?首先我們來看下github這個項目? chinese-dos-games https://github.com/rwv/chinese-dos-games ????????我們看到這個里面收集了

    2024年02月04日
    瀏覽(23)
  • 前端技術搭建掃雷小游戲

    要搭建一個掃雷小游戲,你可以使用以下前端技術: HTML:用于創(chuàng)建游戲界面的結構和布局。 CSS:用于美化游戲界面,包括樣式、布局和動畫效果。 JavaScript:用于實現游戲邏輯和交互功能。 以下是一個簡單的掃雷小游戲的前端技術搭建步驟: 創(chuàng)建HTML結構: 創(chuàng)建一個包含游

    2024年02月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包