三十分钟做一个网页游戏

2023-05-16

  本文目的是短时间之内,通过做出一个简单的缘分对对碰游戏,了解网页的基本要素。之前没有接触过网页开发,这次算是个入门了。

  对于大部分网页,都要包括HTML、CSS、JavaScript三种技术。而相对应的三种文件格式为.html、.css、.js。下面首先给出这个游戏的代码,在分析中学习。我认为了解整体框架之后,学习过程中对于自己不懂的部分百度一下,可以学习的更快,因此我不会做的过于详细。对最新标准支持比较好的是Chrome和Firefox浏览器,推荐使用这两个浏览器进行调试。

  游戏说明

  这是一个非常简单的游戏。用户输入两个名字,点击测一测,就可以看到缘分指数。整个游戏总共有三个文件,即上文提到的三个。

  HTML部分

  HTML即超文本标记语言负责呈现给用户的界面,通过各种标记来定义网页的目录和内容。最新的标准为HTML5,新标准下面的游戏开发是最近比较火的一个方向。
  下面是相应的代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>缘分对对碰</title>
    <link rel="stylesheet"
          type="text/css"
          href="wordStory.css"/>
    <script type="text/javascript"
    src="wordStory.js">
    </script>
</head>
<body>
    <h1>缘分对对碰</h1>
    <h2>输入你和ta的名字,测出你们的缘分指数!</h2>
    <p>
        <form>
            <fieldset>
                <label for="boyName">男方姓名</label>
                <input type="text" id="boyName"/>
                <label for="girlName">女方姓名</label>
                <input type="text" id="girlName"/>
                <button type="button"
                        οnclick="tellStory()">
                    测一测
                </button>
            </fieldset>
        </form>
        <div id="output">
            
        </div>
    </p>    
</body>
</html>

  在<>中的称为tag,通常首尾tag中的内容称为一个container,单个tag一般为element。tag中可以定义参数,如type等等。
  html tag包含html代码,包括head和body两部分。
  而head中title定义了浏览器中显示的标签名称,link tag给出了一个到css文件的链接,script给出了使用的JavaScript文件,如果不想使用外部的css和js文件,可以在head部分直接贴代码。
  在body部分,h1给出了大标题,h2、h3等等可以定义小一级的标题。form和fieldset tag内部是一个表格。lable和input分别定义了标签和输入文本框。button定义了一个按钮,onclick参数设定了点击按钮时候要运行的代码。
  div tag给出了一个可以使用JS实时改变的html内容,具体如何改变下面会提到。

  CSS部分

  CSS又称为风格样式表,定义了网页呈现的风格和样式,如字体大小、颜色、边距等等。
  CSS文件代码:
body{
    background-color: rgb(228,255,255);
}
h1{
    text-align: center;
}
h2{
    text-align: center;
    color: rgb(20,180,30);
}
fieldset{
    width: 600px;
    text-align: center;
    margin: auto;
}
label{
    float: left;
    text-align: right;
    padding-right: 1em;
    clear: left;
    width: 300px;
}
input{
    float: left;
}
button{
    display: block;
    clear: both;
    margin: auto;
}
#output{
    text-align: center;
    font-size: 36px;
    color: rgb(120,30,250);
}

  可以看到,代码是分块构成的,每个块定义对应的tag的样式。最后一个#output之前加#可以把一个div通过id变成一个可以操作的container。
  大多数参数都能从名字看出含义,这也是网页开发中的一个要点。因为网页代码通常数量多,良好的命名方式可以加快开发速度。
  不过,有几个参数略微复杂。padding定义了tag内部的边缘空白,而margin定义了外部的边缘空白。float使tag中内容向某个方向靠,clear则是使某个方向上开始的元素就是这个tag,即不会在左边还有元素。比如label就使得每个label停靠在容器最左边。clear:both则使得这个元素单独成一行。

  JavaScript部分

  JS历史悠久,生命力非常强大。在客户端Angular等各种各样的库,甚至可以在浏览器里模拟linux系统(jslinux),也可以运行大型游戏(doom和epic citadel)。而在服务器端,node.js在chrome浏览器v8引擎基础上作为server,性能远超php。可以说,JS is the future。当然这是一句玩笑话。
  在这个游戏HTML文件中看到,按键被点击时会调用tellStory函数,这个函数是在JavaScript文件中定义的。
  下面给出代码:
function tellStory() {
    var textBoyName=document.getElementById("boyName");
    var boyName=textBoyName.value;
    var textGirlName=document.getElementById("girlName");
    var girlName=textGirlName.value;
    var output=document.getElementById("output");
    var point=Math.ceil(10*(Math.random()+9));
    story=boyName+" 和 "+girlName+" 此时此刻的缘分指数为 "+point;
    output.innerHTML=story;
}//end tellStory

  这段代码仅仅定义了一个函数。函数中getElementById可以根据id得到相应的元素,取其value值就是用户输入的文本。使用random函数随即生成一个分数,就可以输出了(额,如何生成分数可以更sophisticate一些)。当然,这个输出是输出到output对应的div元素中的。

  进一步的学习

  将css和js代码分别存储为文件,使用浏览器打开html文件,这个游戏就可以运行了。
  这是一个非常简单的游戏,对于初学者,可以跟着Wiley.HTML5.Game.Development.for.Dummies.2013这本书学习。
  空谈误国,实干兴邦。如果一直只是看代码,看书,是很难精通网页开发的。最好自己实现一些功能模块,可以参照现有的大网站的网页,学习过程中W3C School的参考手册很方便。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三十分钟做一个网页游戏 的相关文章

  • 认真分享几个「副业赚钱」的靠谱思路!

    已剪辑自 https mp weixin qq com s biz 61 MzUxODM4MDk2NA 61 61 amp mid 61 2247486581 amp idx 61 1 amp sn 61 1a27953f095683669
  • 什么农村大学生大多混得比较差-第一性原理分析

    已剪辑自 https mp weixin qq com s biz 61 MzUxODM4MDk2NA 61 61 amp mid 61 2247485125 amp idx 61 1 amp sn 61 38c12da641e4a80ae
  • DMA原理,步骤超细详解,一文看懂DMA

    文章目录 什么是DMA DMA的基本定义 DMA定义 xff1a DMA传输方式DMA传输参数DMA的主要特征STM32少个DMA资源 xff1f DMA工作系统框图DMA传输方式仲裁器DMA数据流 xff08 仅存在于STM32F4 M4
  • 什么是数字孪生?

    文章目录 什么是数字孪生数字孪生的起源数字孪生的价值结 语 已剪辑自 https zhuanlan zhihu com p 99249900 今天小枣君要给大家介绍的 xff0c 是一个听起来就很高大上的概念 数字孪生 相信很多人都听说过数
  • 秋去冬来,蓄势待发

    冬天是一年的最后一个季节 xff0c 给人的感觉总是寒冷宁静 xff0c 也是这片宁静给我们更多的空间 xff0c 回忆过去 xff0c 思考现在 xff0c 计划未来 这个快节奏的社会 xff0c 我们似乎已经习惯了着眼当下 xff0c
  • 信息化,数字化,智能化是三种不同的概念吗?

    文章目录 信息化 xff0c 数字化 xff0c 智能化是企业信息化发展的不同阶段 一 信息化二 数字化三 智能化 作者 xff1a 元年科技 链接 xff1a https www zhihu com question 414413160
  • 自动驾驶综述|定位、感知、规划常见算法汇总

    文章目录 二 感知模块 1 定位 1 基于激光雷达的定位 2 激光雷达和相机方式定位 3 基于相机的定位方式 2 离线障碍物地图 3 道路建模 4 移动物体跟踪 1 Traditional BasedMOT 2 Model Based MO
  • 自学自动驾驶技术应该采取什么样的学习路线?

    作者 xff1a 机智子 链接 xff1a https www zhihu com question 58267663 answer 300107057 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商
  • 粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解

    文章目录 01 算法起源02 什么是粒子群算法 xff1f 2 1 官方定义 xff08 参照百科 xff09 2 2 通俗点描述2 3 再再再通俗点的描述 03 粒子抽象3 1 关于速度和位置3 2 速度和位置的更新 04 标准PSO算法
  • 遗传算法详解

    文章目录 遗传算法概念1 xff1a 基因和染色体概念2 xff1a 适应度函数概念3 xff1a 交叉概念4 xff1a 变异概念5 xff1a 复制遗传算法的流程究竟需要进化多少次 xff1f 1 限定进化次数2 限定允许范围采用遗传算
  • 模拟退火算法详解

    文章目录 1 金属退火的原理 2 模拟退火算法机制 爬山算法 模拟退火核心思想 模拟退火数学原理 3 模拟退火的流程 4 模拟退火的应用 5 小结 已剪辑自 https zhuanlan zhihu com p 266874840 一个由金
  • 蚁群算法(Ant Colony Optimization)

    已剪辑自 https zhuanlan zhihu com p 137408401 蚁群算法 xff08 Ant Clony Optimization xff0c ACO xff09 是一种群智能算法 xff0c 它是由一群无智能或有轻微智
  • 这四个问题处理好,无人机集群编队研究会有新突破

    已剪辑自 https zhuanlan zhihu com p 164849525 无人机 机器人编队或者是集群控制 xff0c 说到底 xff0c 虽然都是多智能体的控制 xff0c 唯一有区别的在于空间或者平面 xff0c 但随之带来的
  • 开发板移植RTOS操作系统,RTOS操作系统适配开发板整理大全

    文章目录 一 单片机 嵌入式有无操作系统的区别二 操作系统时的分层架构图三 移植FreeRTOS到小熊派开发板 xff08 STM32L431RC xff09 1 硬件准备2 下载FreeRTOS源码2 1 FreeRTOS版本2 2 Fr
  • C语言和设计模式(继承、封装、多态)

    声明 xff1a 版权所有 xff0c 欢迎转载 xff0c 请勿用于商业用途 联系信箱 xff1a feixiaoxing 64 163 com 记得还在我们大学C 43 43 第一门课的时候 xff0c 老师就告诉我们说 xff0c C
  • 【ERROR】bash: vim: command not found 的解决

    Linux系统是第一次接触 xff0c 里面的大部分功能都能够实现就是在使用文档编辑命令的使用vim文件名时出现错误 1 vim 文件名 xff1a 编辑某文件时出现如下错误 2 rpm qa grep vim xff1a 查询vim中文件
  • C语言和设计模式(之开篇)

    已剪辑自 https blog csdn net feixiaoxing article details 7068053 声明 xff1a 版权所有 xff0c 欢迎转载 xff0c 请勿用于商业用途 联系信箱 xff1a feixiaox
  • C语言和设计模式大全(附代码示例)

    文章目录 C语言和设计模式 xff08 之单件模式 xff09 C语言和设计模式 xff08 之原型模式 xff09 C语言和设计模式 xff08 之组合模式 xff09 C语言和设计模式 xff08 之模板模式 xff09 C语言和设计模

随机推荐