個人練習javascriptブロック崩し解説なし

背景
投稿者投稿者ueshin0620いいね1お気に入り登録
プレイ回数727難易度(3.4) 1787打 英語
個人練習用のコードです
個人練習用、まったく解説がないです。

関連タイピング

問題文

ふりがな非表示 ふりがな表示

(function setup() {)

function setup() {

(createCanvas(400, 400);)

createCanvas(400, 400);

(for (let i = 0; i < 12; i++) {)

for (let i = 0; i < 12; i++) {

(let p = new Vec2(90*(i%4)+50, 50*floor(i/4)+50);)

let p = new Vec2(90*(i%4)+50, 50*floor(i/4)+50);

(blocks.push(new Block(p, 20)); } })

blocks.push(new Block(p, 20)); } }

(class Vec2 {)

class Vec2 {

(constructor(_x, _y) {)

constructor(_x, _y) {

(this.x = _x;)

this.x = _x;

(this.y = _y; })

this.y = _y; }

(add(b) {)

add(b) {

(let a = this;)

let a = this;

(return new Vec2(a.x + b.x, a.y + b.y); })

return new Vec2(a.x + b.x, a.y + b.y); }

(mul(s) { let a = this;)

mul(s) { let a = this;

(return new Vec2(s * a.x, s * a.y); })

return new Vec2(s * a.x, s * a.y); }

(mag() {)

mag() {

(let a = this;)

let a = this;

(return sqrt(a.x ** 2 + a.y ** 2); })

return sqrt(a.x ** 2 + a.y ** 2); }

(sub(b) { let a = this;)

sub(b) { let a = this;

(return new Vec2(a.x - b.x, a.y - b.y); })

return new Vec2(a.x - b.x, a.y - b.y); }

(norm() {)

norm() {

など

(let a = this;)

let a = this;

(return a.mul(1 / a.mag()); })

return a.mul(1 / a.mag()); }

(dot(b) {)

dot(b) {

(let a = this;)

let a = this;

(return a.x * b.x + a.y * b.y; })

return a.x * b.x + a.y * b.y; }

(reflect(w) {)

reflect(w) {

(let v = this;)

let v = this;

(let cosTheta = v.mul(-1))

let cosTheta = v.mul(-1)

(.dot(w) / (v.mul(-1).mag() * w.mag());)

.dot(w) / (v.mul(-1).mag() * w.mag());

(let n = w.norm().mul(v.mag() * cosTheta);)

let n = w.norm().mul(v.mag() * cosTheta);

(let r = v.add(n.mul(2));)

let r = v.add(n.mul(2));

(return r; } })

return r; } }

(class Ball {)

class Ball {

(constructor(_p, _v, _r) {)

constructor(_p, _v, _r) {

(this.p = _p;)

this.p = _p;

(this.v = _v;)

this.v = _v;

(this.r = _r; } })

this.r = _r; } }

(class Block {)

class Block {

(constructor(_p, _r) {)

constructor(_p, _r) {

(this.p = _p;)

this.p = _p;

(this.r = _r; } })

this.r = _r; } }

(class Paddle {)

class Paddle {

(constructor(_p, _r) {)

constructor(_p, _r) {

(this.p = _p;)

this.p = _p;

(this.r = _r; } })

this.r = _r; } }

(let ball = new Ball()

let ball = new Ball(

(new Vec2(200, 300),)

new Vec2(200, 300),

(new Vec2(240, -60),)

new Vec2(240, -60),

(15 );)

15 );

(let blocks = [];)

let blocks = [];

(let paddle = new Paddle(new Vec2(200, 320), 30);)

let paddle = new Paddle(new Vec2(200, 320), 30);

(function draw() {)

function draw() {

(ball.p = ball.p.add(ball.v.mul(1 / 60));)

ball.p = ball.p.add(ball.v.mul(1 / 60));

(if ((ball.p.x < 15) || (ball.p.x > 385)) {)

if ((ball.p.x < 15) || (ball.p.x > 385)) {

(ball.v.x = -ball.v.x; })

ball.v.x = -ball.v.x; }

(if ((ball.p.y < 15) || (ball.p.y > 385)) {)

if ((ball.p.y < 15) || (ball.p.y > 385)) {

(ball.v.y = -ball.v.y; })

ball.v.y = -ball.v.y; }

(for (let block of blocks) {)

for (let block of blocks) {

(let d = block.p.sub(ball.p).mag();)

let d = block.p.sub(ball.p).mag();

(if (d < (ball.r + block.r)) {)

if (d < (ball.r + block.r)) {

(let w = ball.p.sub(block.p);)

let w = ball.p.sub(block.p);

(let r = ball.v.reflect(w);)

let r = ball.v.reflect(w);

(ball.v = r;)

ball.v = r;

(blocks.splice(blocks.indexOf(block), 1);)

blocks.splice(blocks.indexOf(block), 1);

(} })

} }

(paddle.p.x = mouse-X;)

paddle.p.x = mouse-X;

(let d = paddle.p.sub(ball.p).mag();)

let d = paddle.p.sub(ball.p).mag();

(if (d < (ball.r + paddle.r)) {)

if (d < (ball.r + paddle.r)) {

(let w = ball.p.sub(paddle.p);)

let w = ball.p.sub(paddle.p);

(let r = ball.v.reflect(w);)

let r = ball.v.reflect(w);

(ball.v = r;)

ball.v = r;

(ball.p = paddle.p.add(w.norm())

ball.p = paddle.p.add(w.norm()

(.mul(ball.r + paddle.r)); })

.mul(ball.r + paddle.r)); }

(background(220);)

background(220);

(circle(ball.p.x, ball.p.y, 2*ball.r);)

circle(ball.p.x, ball.p.y, 2*ball.r);

(for (let b of blocks) {)

for (let b of blocks) {

(circle(b.p.x, b.p.y, 2*b.r); })

circle(b.p.x, b.p.y, 2*b.r); }

(circle(paddle.p.x,)

circle(paddle.p.x,

(paddle.p.y, 2*paddle.r); })

paddle.p.y, 2*paddle.r); }

問題文を全て表示 一部のみ表示 誤字・脱字等の報告

ueshin0620のタイピング

オススメの新着タイピング

タイピング練習講座 ローマ字入力表 アプリケーションの使い方 よくある質問

人気ランキング

注目キーワード