Javascript 为什么会出现错误:“quot;无法读取属性';风格';“无效”的定义;因为第190行、200行、213行的事而在216行?
*我不明白为什么我的控制台上会出现以下错误:“无法读取第216行的null属性‘style’”(在底部附近,我添加了一条注释),因为第190、200、213行也有错误?我想问题是关于激光变量。。。请帮忙。如果有人能尽快帮助我,我将不胜感激。* '''Javascript 为什么会出现错误:“quot;无法读取属性';风格';“无效”的定义;因为第190行、200行、213行的事而在216行?,javascript,html,online-game,Javascript,Html,Online Game,*我不明白为什么我的控制台上会出现以下错误:“无法读取第216行的null属性‘style’”(在底部附近,我添加了一条注释),因为第190、200、213行也有错误?我想问题是关于激光变量。。。请帮忙。如果有人能尽快帮助我,我将不胜感激。* ''' 测试 像素发生器 游戏说明 YouTube 使用WASD键控制玩家1(蓝色),Q到 向左射击,向右射击。使用箭头键控制播放器2(), 1个在数字牌上向左射击,2个在右射击。 接近 钮扣{ 背景色:#4169E1; 颜色:白色; 填充:14px 2
测试
像素发生器
游戏说明
YouTube
使用WASD键控制玩家1(蓝色),Q到
向左射击,向右射击。使用箭头键控制播放器2(),
1个在数字牌上向左射击,2个在右射击。
接近
钮扣{
背景色:#4169E1;
颜色:白色;
填充:14px 20px;
利润率:8px0;
边界:无;
光标:指针;
宽度:30%;
高度:45px;
}
#英雄{
背景:#ff0000;
宽度:20px;
高度:50px;
位置:绝对位置;
}
#玩家{
背景:#ff0000;
宽度:20px;
高度:50px;
位置:绝对位置;
}
#图片{
宽度:150px;
}
#雷射{
宽度:30;
身高:3;
背景:#ff0000
位置:绝对位置;
}
函数YouTube(){
窗口打开(“https://www.youtube.com/channel/UCe9MhUIA6wwwchVBzypCBnA");
}
document.getElementById(“指令1”).style.display=“无”;
document.getElementById(“Close”).style.display=“无”;
功能指令(){
document.getElementById(“指令1”).style.display=“块”;
document.getElementById(“Close”).style.display=“block”;
}
函数close1(){
document.getElementById(“指令1”).style.display=“无”;
document.getElementById(“Close”).style.display=“无”;
}
var左键=65;
var UP_KEY=87;
var右键=68;
var DOWN_KEY=83;
var左箭头=37;
var右箭头=39;
变量空间_键=32;
var向下箭头=40;
var向上箭头=38;
var Q_KEY=81;
var E_KEY=69;
var HERO_运动=10;
var lastLoopRun=0;
var controller=新对象();
var player=新对象();
player.element='player'
player.x=650;
player.y=460;
var hero=新对象();
hero.element='hero';
hero.x=250;
hero.y=460;
var激光=新对象();
激光x=0;
激光y=-120;
功能性反弹(精灵、ignoreY){
如果(sprite.x<20){
sprite.x=20;
}
如果(!ignoreY&&sprite.y<20){
雪碧y=20;
}
如果(sprite.x+sprite.w>1910){
sprite.x=1910-sprite.w;
}
如果(!ignoreY&&sprite.y+sprite.h>940){
sprite.y=940-sprite.h;
}
}
函数createSprite(元素,x,y,w,h){
var result=新对象();
结果:元素=元素;
结果:x=x;
结果y=y;
结果:w=w;
结果:h=h;
返回结果;
}
功能切换键(按键代码,已按下){
if(keyCode==向下键){
controller.down=isPressed;
}
if(keyCode==左键){
controller.left=已按下;
}
if(keyCode==右键){
controller.right=isPressed;
}
如果(键代码==向上键){
controller.up=isPressed;
}
if(keyCode==空格\u键){
controller.space=isPressed;
}
如果(键代码==左箭头){
controller.leftarrow=isPressed;
}
if(键代码==右箭头){
controller.rightarrow=isPressed;
}
如果(键代码==向上箭头){
controller.rightarrow=isPressed
}
if(键码==向下箭头){
controller.downarrow=isPressed
}
if(keyCode==Q_键){
controller.qkey=isPressed
}
if(keyCode==E_键){
controller.ekey=isPressed
}
}
函数handleControls(){
如果(控制器关闭){
英雄.y+=英雄运动
}
if(controller.up){
hero.y-=英雄运动
}
if(控制器左){
英雄.x-=英雄运动;
}
如果(控制器右侧){
英雄.x+=英雄_运动;
}
如果(controller.qkey&&laser.x您的laser对象没有设置laser.element属性,如果您在laster.x和laser.y初始化(第104行)之后添加laser.element='laser',这个错误应该被修复这个错误意味着调用getElementById()
返回null
。谢谢。我会尝试的
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>test</title>
<div>
<h1 style="text-align:center; color:purple;" id="pixelator">
<big>
<i>
<b>
Pixelator
</b>
</i>
</big>
</h1>
<button type="button" id="button1" onclick="Instructions()">Instructions for game</button>
<button type="button" id="button2" onclick="YouTube()">YouTube</button>
<h3 id="Instructions1">
Use the keys WASD to controll player one(blue), Q to
shoot left and E to shoot right. Use the arrow keys to controll player two(),
1 on the numberpad to shoot left and two to shoot right.
</h3>
<button type="button" id="Close" onclick="close1()">Close</button>
</div>
<img src="C:/Users/Tania/Documents/Website/Screenshots/Nice.jpg" alt="Image not found" id="Pic">
</head>
<body style="background-color:green">
<style>
button {
background-color: #4169E1;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
cursor: pointer;
width: 30%;
height: 45px;
}
#hero {
background:#ff0000;
width:20px;
height:50px;
position:absolute;
}
#player {
background:#ff0000;
width:20px;
height:50px;
position:absolute;
}
#Pic {
width: 150px;
}
#laser {
width: 30;
height: 3;
background:#ff0000
position:absolute;
}
</style>
<div id="player"></div>
<div id="hero"></div>
<div id="laser"></div>
<script type="text/javascript">
function YouTube(){
window.open("https://www.youtube.com/channel/UCe9MhUIA6wwwchVBzypCBnA");
}
document.getElementById("Instructions1").style.display = "none";
document.getElementById("Close").style.display = "none";
function Instructions() {
document.getElementById("Instructions1").style.display = "block";
document.getElementById("Close").style.display = "block";
}
function close1() {
document.getElementById("Instructions1").style.display = "none";
document.getElementById("Close").style.display = "none";
}
var LEFT_KEY = 65;
var UP_KEY = 87;
var RIGHT_KEY = 68;
var DOWN_KEY = 83;
var LEFT_ARROW = 37;
var RIGHT_ARROW = 39;
var SPACE_KEY = 32;
var DOWN_ARROW = 40;
var UP_ARROW = 38;
var Q_KEY = 81;
var E_KEY = 69;
var HERO_MOVEMENT = 10;
var lastLoopRun = 0;
var controller = new Object();
var player = new Object();
player.element = 'player'
player.x = 650;
player.y =460;
var hero = new Object();
hero.element = 'hero';
hero.x = 250;
hero.y = 460;
var laser = new Object();
laser.x = 0;
laser.y = -120;
function ensureBounds(sprite, ignoreY) {
if (sprite.x < 20) {
sprite.x = 20;
}
if (!ignoreY && sprite.y < 20) {
sprite.y = 20;
}
if (sprite.x + sprite.w > 1910) {
sprite.x = 1910 - sprite.w;
}
if (!ignoreY && sprite.y + sprite.h > 940) {
sprite.y = 940 - sprite.h;
}
}
function createSprite(element, x, y, w, h) {
var result=new Object();
result.element=element;
result.x=x;
result.y=y;
result.w=w;
result.h=h;
return result;
}
function toggleKey(keyCode, isPressed) {
if (keyCode == DOWN_KEY) {
controller.down = isPressed;
}
if (keyCode == LEFT_KEY) {
controller.left = isPressed;
}
if (keyCode == RIGHT_KEY) {
controller.right = isPressed;
}
if (keyCode == UP_KEY) {
controller.up = isPressed;
}
if (keyCode == SPACE_KEY) {
controller.space = isPressed;
}
if (keyCode == LEFT_ARROW) {
controller.leftarrow = isPressed;
}
if (keyCode == RIGHT_ARROW) {
controller.rightarrow = isPressed;
}
if (keyCode == UP_ARROW) {
controller.rightarrow = isPressed
}
if (keyCode == DOWN_ARROW) {
controller.downarrow = isPressed
}
if (keyCode == Q_KEY) {
controller.qkey = isPressed
}
if (keyCode == E_KEY) {
controller.ekey = isPressed
}
}
function handleControls() {
if (controller.down) {
hero.y += HERO_MOVEMENT
}
if (controller.up) {
hero.y -= HERO_MOVEMENT
}
if (controller.left) {
hero.x -= HERO_MOVEMENT;
}
if (controller.right) {
hero.x += HERO_MOVEMENT;
}
if (controller.qkey && laser.x <= -120) {
laser.x=hero.x-20;
laser.y=hero.y+15;
}
if (controller.ekey && laser.x <= -120) {
laser.x=hero.x+20;
laser.y=hero.y+10;
}
ensureBounds(hero);
}
function showSprites() {
setPosition(hero);
setPosition(laser);
setPosition(player)
}
function updatePositions() {
laser.x-= 90
}
function loop() {
if (new Date().getTime() - lastLoopRun > 40) {
updatePositions();
handleControls();
showSprites();
lastLoopRun = new Date().getTime();
}
setTimeout('loop();', 2);
}
document.onkeydown = function(evt) {
toggleKey(evt.keyCode, true);
};
document.onkeyup = function(evt) {
toggleKey(evt.keyCode, false);
};
loop();
function setPosition(sprite) {
var e = document.getElementById(sprite.element)
//***LINE 216-*** e.style.left = sprite.x + 'px';
e.style.top = sprite.y + 'px';
}
createSprite('laser', 0, -120, 2, 50)
</script>
</body>
</html>