项目前端

news/2024/11/16 6:03:33/文章来源:https://www.cnblogs.com/kwqlj/p/18297908

目录
  • vue组件
    • 基础
    • 页面组件
    • 组件与链接关联
    • 按键绑定网址
    • 获取当前网页地址
    • bootstrap常用
    • ★实现地图以及地图刷新
      • 游戏基类
      • 游戏对象
        • 地图
          • 变量
          • 函数
        • null
        • ★PK页面

vue组件

基础

  • 组件名两个大写字母
  • template,script,style(带上scoped,给该css加上随机字符串,不影响到其他组件)
  • 使用Bootstrap前端框架(将Bootstrappopperjs/core装到vue依赖)
    • import boostrap的css和js
    • QQ截图20231023101203
  • 组件写好后要导入vue文件中
    • js中import该组件
    • 放入components关键字,才能在HTML中使用该组件标签
    • 写入html中
    • image-20231023100655842

页面组件

  • 习惯性放在views文件夹中
  • 主界面一般叫Index,例如:PKIndexView.vue

组件与链接关联

  • 在主页(App.vue)中包含router-view,在router文件夹中的index定义它。

    • import需要的组件

    • routers中定义路径

    • QQ截图20231023110527
    • {path: "/",name: "home",redirect: "/pk/"  // 根地址重定向为pk目录
      },
      {path: "/:catchAll(.*)",redirect: "/404/"  // 错乱地址重定向为404
      }
      

按键绑定网址

  • navbar中修改link标签的href

  • QQ截图20231023111612
    • a标签(即link标签),换成router-link标签(href换成:to),实现点导航栏不刷新。

    • 也可以使用name来实现,例如:

      • :to="{name: 'home'}"
        

获取当前网页地址

  • import { useRoute } from 'vue-router'
    // 引入一个api:useRoute
    import { computed } from 'vue'
    // 实时计算用computedexport default {setup() {const route = useRoute();let route_name = computed(() => route.name)return {route_name}}
    }
    
  • 在html中使用表达式,需要在属性前加冒号":"

    • :class="route_name == 'pk_index' ? 'nav-link active' : 'nav-link'" 
      // 如果route_name (即当前地址名) == pk_index (即/pk/的name),则class中加active,否则不加
      

bootstrap常用

  • 公共部分作为一个新组件,需要填充的内容在

  • card:框框,框住页面信息,放到

    下,container自适应大小

  • 在 style中(CSS),修改边距等信息

    • 在需要修改的地方加class为xxx

    • 在style中写:div.xxx {}

      • 上边距:margin-top: 20px;
        

★实现地图以及地图刷新

  • 代码脚本放在assets中,创建文件夹scripts存放所有脚本,images
  • assets中写一个文件 AcGameObject.js,用于刷新
    • 把所有需要更新的游戏对象,存在数组内
    • 基类为AcGameObject
  • 前端浏览器函数:requestAnimationFrame(),用于在下一次浏览器渲染之前,执行其中函数。
    • 即第一帧调用requestAnimationFrame后,在下一帧会执行其中内容
    • QQ截图20231023165717
    • 递归来实现不停刷新:第一帧调用requestAnimationFrame后,在下一帧会执行step,执行step时 会再次调用requestAnimationFrame。

游戏基类

  • start()
  • update()
  • on_destroy(),删除之前执行
  • destroy()
  • 属性:
    • 是否调用
    • 时间间隔timedelta
    • 上一次执行的时刻last_timestep
    • 当前函数执行的时刻timestep
    • 速度
  • 在step()传入参数:当前函数执行的时刻,遍历所有物品,如果未执行start,则执行start。否则执行update
    • QQ截图20231023171654
    • QQ截图20231023171917
    • "of" 表示遍历值,"in" 遍历下标。
    • 最后更新last_timestep = timestep
    • 再次调用requestAnimationFrame,用于刷新

游戏对象

地图

assets/scripts下创建GameMap.js

import { AcGameObject } from "./AcGameObject.js"

如果要引进的类是export声明的,则import时需要大括号括起来

如果要引进的类是export default声明的,则不需要(export default 类似于 java里的public)

变量
  • 画布: ctx
  • 修改画布长宽: parent
  • 绝对单位长度: L
  • 行:rows
  • 列:cols
函数
  • start
  • update_size() // 用于动态更新地图尺寸
  • update
  • render() // 渲染函数,每一帧执行一次,即放在update里执行

★PK页面

  • 将游戏区域新建成组件:PlayGround.vue
  • 面板组件(游戏,结算,胜利等内容)GameMap.vue
    • 游戏画在canvas标签里(mdn中查标签作用)
  • 在PK页面import导入PlayGround:
    • QQ截图20231023210944
  • auto表示居中,margin表示四边距
    • QQ截图20231023211148
  • 在PlayGround.vue导入GameMap.vue
  • 在GameMap.vue导入GameMap.js中的类,创建游戏对象来实现类。
    • 导入ref来在vue中定义变量,并将变量与标签绑定
    • onMouted函数,即组件挂载完后,需要执行的操作
      • 创建游戏对象 new GameMap(xxxx)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742397.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3中组件使用ref时获取组件类型推导

本文由 ChatMoney团队出品 我们在使用Vue3+ts开发时,常常会用到一些第三方组件库,比如Element-Plus UI、Navie UI等,这些UI框架中有些组件常常会暴露一些方法给我们便捷的去实现各种复杂的交互,我们经常会像下面这样去给组件定义一个ref去获取组件的实例: <template>…

火山引擎数智平台赋能火花思维,A/B测试加速创新

在数字化浪潮下,火花思维凭借其对数据驱动的理解与实践,搭上了业务快速增长的快车。这一效果的背后,离不开火花思维与火山引擎数智平台的深度合作。通过引入火山引擎的DataFinder和DataTester等产品,火花思维实现了数据问题的快速定位与数据资产的高效利用。更多技术交流、…

node中npm yarn pnpm孰优孰劣???

npm npm2 node版本为4,npm版本就会将为2.x,此时我们执行下那 npm install express分析下node_modules的目录结构。我们会发现, express 包和它的依赖都会被下载下来,展开展开 express,它也有 node_modules:再展开几层,每个依赖都有自己的 node_modules:也就是说 npm2 的…

从0开始搭建博客

1. 概述 本篇博客,我教大家从0开始搭建一个 bolo博客,bolo 博客 和 solo 博客的区别是皮肤更加多,并且可以帐号密码登录。 本篇博客主要的内容如下:linux 安装 docker,设置docker镜像加速 docker 安装 nginx docker 的一些常用的命令 docker 安装 mysql 数据库 docker 安装…

OI 之后的故事 ~After Story~

回归综合 NOI 2023 后,理所当然是回归文化课的学习。 一开始,我惊讶地发现凭借学 OI 期间打下的数学基础及平时阅读英文题面积累的词汇量,我的数学和英语似乎还不错。 最头痛的无疑是语文和物理了。前者属于是玄学,你想到的点答案不一定有;对于后者,计算大题做一道错一道…

CF1936D. Bitwise Paradox-位运算、分治、线段树

link:https://codeforces.com/contest/1936/problem/D 题意:给两个长度为 \(n\) 的序列 \(a\) 和 \(b\),对一个区间 \([l,r]\),称 \([l,r]\) 是好的,若:\((b_l|\dots|b_r)\geq v\)。一个区间的 美丽值 定义为区间内 \(a\) 的最大值。现在有 \(q\) 个操作:1、\(b_i\to x\…

去哪儿故障定位

https://mp.weixin.qq.com/s/9f9PUUy8c-GCJLa0deIvuA

Cilium DSR 特性(转载)

Cilium DSR 特性Cilium DSR(转载) 一、环境信息主机 IPubuntu 10.0.0.234软件 版本docker 26.1.4helm v3.15.0-rc.2kind 0.18.0kubernetes 1.23.4ubuntu os Ubuntu 22.04.6 LTSkernel 5.15.0-106 内核升级文档使用 5.11.5 内核版本的 20.04 版本,发起 curl 请求无法代理到 p…

上传恶意代码服务器和数据库的操作

在通过访问端对服务器上传一句话木马的时候,我们需要对服务器进行部分操作: 1.打开服务器远程目录权限: (1)在windows服务器上,将文件夹的只读方式去掉; (2)在linux服务器上,将文件夹的权限改为pwd 2.开启数据库secure_file_priv权限 (1)我这里使用的是mysql5.7.2…

Zabbix 5.0 LTS URL 健康监测

更多细节详情看【zabbix官方文档】 需求 Zabbix 的URL健康监测功能允许你检测 Web 地址是否可用、正常工作以及响应速度。这对于监控网站的可用性和性能非常有用。例如,你可以监控公司网站、API 端点或其他关键服务的 URL。【官方表述 Web monitoring items】【官方表述 Trigg…

idea 修改 git 提交用户名

本项目 修改配置文件 修改当前项目目录下的 config 文件添加以下数据[user]name = **email = **@gmail.com全局修改 git config --global user.name gitlab注册用户名 git config --global user.email gitlab注册邮箱

ChatMoney,你的就业指导明灯

本文由 ChatMoney团队出品介绍说明 Hey!亲爱的小伙伴们,今天我要给大家带来一个职场利器——AI就业指导机器人!🤖 在这个充满变数的职场江湖,找到一份既能养家糊口又能实现自我价值的工作是多么重要。但是,职业道路上的选择和决策并不总是那么容易。有时候,我们需要的不…