javascript - GAME_WIDTH、GAME_HEIGHT 和 gameWidth、gameHeight
问题描述
我正在学习如何使用 Vanilla JS 制作游戏。讲师正在使用GAME_WIDTH, GAME_HEIGHT
; index.js
并gameWidth, gameHeight
在paddle.js
. 当他使用后者时,我看到后者附近有一个解释弹出窗口说GAME_WIDTH, GAME_HEIGHT
当他将鼠标悬停在 时会考虑gameWidth, gameHeight
。
但是当我尝试将鼠标悬停在gameWidth, gameHeight
; 它说any
。谁能解释其中的区别?
顺便说一句,教练使用的方式,如果这与它有任何关系Sandbox
,我正在使用。VS Code
index.js
import Paddle from './paddle.js';
let canvas = document.getElementById('gameScreen');
let ctx = canvas.getContext('2d');
const GAME_WIDTH = 800;
const GAME_HEIGHT = 600;
let paddle = new Paddle(GAME_WIDTH, GAME_HEIGHT);
paddle.js
export default class Paddle {
constructor(gameWidth, gameHeight) {
this.gameWidth = gameWidth;
this.width = 150;
this.height = 20;
this.maxSpeed = 7;
this.speed = 0;
this.position = {
x: gameWidth - 100 - this.width - 100,
y: gameHeight - this.height - 10,
};
}
解决方案
大写常量 (GAME_WIDTH) 是存在于全局范围内的实际数据容器。驼峰式变量是函数参数,只存在于函数的生命周期内。
该脚本首先将常量设置为默认值。然后稍后它使用它们来启动 Paddle 的构造函数。但他真的可以向那个构造函数发送任何数字。因此,在这一用法之外的常量和变量之间没有关系(afaics)
编辑:他们在你的导师编辑器中的关系很可能是所述编辑器的一个特征。
推荐阅读
- c# - Visual Studio 2010 中 HtmlAgilityPack 包面临的问题
- delphi - SaveDialog 建议的文件名以匹配扩展过滤器
- c# - 具有“格式化”名称的 C# JsonProperty
- c# - C# TCPListener 在空闲阶段后停止侦听
- python - 从 beautifulsoup 中提取 href:为什么没有?
- c# - 如何为 lamda 函数创建 VS C# 项目以处理 Amazon IoT 开发人员按钮事件?
- java - TCP/IP SocketServer 的 Web UI
- wordpress-theming - 短代码在单页上随处可见
- forms - 访问:如果值为 true,则显示(布尔)字段名称和描述的列表
- android - 问题从日历中减去天数