- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 HTML 5 + Canvas 游戏开发新手。试图在我的 Pong 游戏中为球制作动画。这是我的 code .相关片段:
增加球的速度:
Ball.prototype.update = function () {
this.x += this.velocity.x;
this.y += this.velocity.y;
};
游戏循环代码:
function update() {
ball.update();
window.requestAnimationFrame(update);
}
球只是停在那里。我用谷歌搜索并阅读了几篇文章,但没有运气。如果您能帮助我移动球,我将不胜感激。
最佳答案
删除了您的 render()
函数,因为不需要(将所有内容移至 update()
),您需要
var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d');
function init(width, height, bg) {
canvas.width = width;
canvas.height = height;
canvas.style.backgroundColor = bg;
document.body.appendChild(canvas);
function Paddle(x, y, width, height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.velocity = {
x: 0,
y: 0
};
}
Paddle.prototype.render = function () {
ctx.fillStyle = 'rgb(2, 149, 212)';
ctx.fillRect(this.x, this.y, this.width, this.height);
};
function Player() {
this.paddle = new Paddle(485, canvas.height / 2 - 25, 15, 50);
}
Player.prototype.render = function () {
this.paddle.render();
};
function AI() {
this.paddle = new Paddle(0, canvas.height / 2 - 25, 15, 50);
}
AI.prototype.render = function () {
this.paddle.render();
};
function Ball(x, y, radius) {
this.x = x;
this.y = y;
this.radius = radius;
this.velocity = {
x: 2,
y: 2
};
}
Ball.prototype.render = function () {
ctx.beginPath();
ctx.fillStyle = 'rgb(80, 80, 80)';
ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false);
ctx.fill();
};
Ball.prototype.update = function () {
this.x += this.velocity.x;
this.y += this.velocity.y;
};
window.player = new Player();
window.computer = new AI();
window.ball = new Ball(canvas.width / 2, canvas.height / 2, 10);
}
function update() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
player.render();
computer.render();
ball.update();
ball.render();
window.requestAnimationFrame(update);
}
function main() {
init(500, 250, '#EEE');
update();
}
main();
关于JavaScript Canvas : Pong - Animation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324707/
我使用 Xcode 和 swift 5 构建了一个应用程序。 每次我点击“简单”、“中等”、“困难”或“2 人”按钮时,我都会收到错误消息: Could not cast value of type
所以我和我的搭档正在尝试制作一个玩家对电脑的乒乓球游戏,但我们就是不知道如何让电脑输。 我们已经完成了基本的工作,它运行良好,但计算机永远不会丢失。我们还尝试使用 sleep 来减慢计算机的速度,但是
我应该如何设计“适当的” OO Pong? 正确的想法是可以更改任何元素:球,球场和 Racket 的形状,增加了障碍,甚至是“助力”,例如“可以将球粘在 Racket 上”。 目前,还有两个紧迫的问
我正在尝试用 Java 制作 Pong 游戏,但在球从 Racket 上弹起时遇到了一些问题。 我有两个桨:左桨1,右桨2。 我的想法如下:ball_Y应该在 Racket 的高度之间,ball_X触
我对 Java 还很陌生,需要一些帮助。我已经创建了 Pong 游戏(使用 Eclipse),并且在大多数情况下,它运行得很好。然而,碰撞检测有些不对劲。球从人类控制的 Racket 上反弹得很好,但
我正在打乒乓球,我已经将球的 x 坐标设置为在它碰到 Racket 时立即反转,并在它没有击中 Racket 时停止。此代码在“大部分”时间都有效,但“有时”球会在没有明显原因的情况下一击中 Rack
我正在创建一个 JS Pong 游戏,但 Pong 游戏中的球在几秒钟后开始滞后。我尝试停止动画帧,优化代码以获得更好的性能并重写球的代码,但没有任何效果。有人可以帮我吗? HTML(无 CSS)
我很困惑为什么我的记分板没有在屏幕上更新。分数正在增加(我用调试器检查过,球也正在居中)。但记分牌根本不更新,它不断显示“0:0” 乒乓球类 package com.dheraxysgames.pon
最近我编写了一个pygame 'Pong',我还没有完成它,因为桨还不能移动。 但是,我在这里遇到了一个问题。因为我想要得到的分数等于球击中 window 边缘的次数。对于我的程序,当球撞到墙壁时,得
嗨,我写了这个简单的碰撞检测和弹跳算法,但是碰撞检测到 y 就好像它是 x 轴一样 bool Ball::DetectCollision(Paddle p) { if(GetPosition().y
我正在用 Python 制作经典的 Pong,但我需要帮助。 对于/在这个游戏中,我想计算球的轨迹,因此对于给定的开始点(在左桨上弹跳)和角度(绿色物体),我想计算终点(蓝色 X)。这一切都是为了将
我有一个 UIImageView,其中加载了一个 png 图像序列。 我的问题是 - 你知道有什么方法可以“乒乓”动画序列吗?这样就从 1-24 向前播放,然后从 24-1 向后播放并循环。 (技术上
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我正在用java制作乒乓球,但敌人的AI没有动。它应该向球移动的方向移动。请问有人可以帮助我吗? 主类: import javax.swing.*; public class Main extends
我正在用java制作一个乒乓球类型的游戏,我试图让球从墙上弹开,但每当球撞到球时,它就会停止,它不会从墙上反射出来,我看不到找出原因。 处理球运动的球类 public class Ball { pri
我正在为我的 Pong 克隆编写一些困难,我写这些是为了熟悉 SFML 和 Xcode。对于最难的难度,我想创建一个人工智能关卡,让计算机立即知道球会去哪里。所以,如果我有 xVelocity 和 y
我是 HTML 5 + Canvas 游戏开发新手。试图在我的 Pong 游戏中为球制作动画。这是我的 code .相关片段: 增加球的速度: Ball.prototype.update = func
好吧,我为此搜索了很多,但我能找到的只是人们说的像 pi * direction,方向是我假设的球进入的角度。但我的问题是,我不知道我是如何得到球进入的角度的,所以我做不到这些。如果有人可以解释我将如
试图在 java 中制作乒乓球但不能同时移动两个 Racket 。您可以移动其中一个,但不能同时移动两者。我是否需要创建具有 2 个不同面板的 2 个线程? 这里是我指定关键事件的地方 public
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我是一名优秀的程序员,十分优秀!