88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 627
1

не могу найти в чем ошибка

03.05.2018, 13:12. Показов 1222. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="css.css">
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <canvas id="canvas" width="200" height="200"></canvas>
<script src="https://code.jquery.com/jquery-2.1.0.js"></script>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var circle = function(x,y,radius,fillCircle)
{
    ctx.beginPath();
    ctx.arc(x,y,radius,0,Math.PI*2,false);
    if (fillCircle)
    {
        ctx.fill();
    }
    else
    {
        ctx.stroke();
    }
};
var drowBee=function(x,y)
{
    ctx.lineWidth=2;
    ctx.strokeStyle="Black";
    ctx.fillStyle="Gold";
 
    circle(x,y,8,true);
    circle(x,y,8,false);
    circle(x-5,y-11,5,false);
    circle(x+5,y-11,5,false);
    circle(x-2,y-1,2,false);
    circle(x+2,y-1,2,false);
};
 
var update=function(coordinate)
{
    var offset=Math.random()*4-2;
    coordinate+=offset;
 
    if(coordinate>200)
    {
        coordinate=200;
    }
    if(coordinate<0){
        coordinate=0;
    }
    return coordinate;
};
 
// var x=100;
// var y=100;
 
// var x1=120;
// var y1=100;
 
// setInterval(function(){
// ctx.clearRect(0,0,200,200);
// drowBee(x,y);
// drowBee(x1,y1);
// x=update(x);
// y=update(y);
// x1=update(x1);
// x2=update(x2);
// },30);
 
var Point = function(x,y)
{
    this.x=x;
    this.y=y;
};
// Point.prototype.updatep=function()
// {
//  this.x=update(this.x);
//  this.y=update(this.y);
// };
var updatep= function(point){
    console.log(point);
var pointx = new Point(update(point.x),update(point.y));
return pointx;
}
 
var roy=[];
for (var i=0;i<20;i++)
{
    roy[i]= new Point(100,100);
}
 
// setInterval(function(){
    ctx.clearRect(0,0,200,200);
    for (i=0;i<20;i++)
    {
 
        drowBee(roy[i].x, roy[i].y);
    }
    roy[i]=updatep(roy[i]);
// },30);
 
</script>   
</body>
</html>
в общем ковыряю популярную книгу js для детей. после прочтения главы где рисуется пчелка в конвасе, решил нарисовать и анимировать n пчелок. в результате где-то накосячил. видимо не очень я еще разобрался с классами в JS. в общем я создал массив из элементов класса Point и написал для элемента класса Point функцию updatep. вроде бы все по правилам, однако, вижу что в функцию передается переменная класса undefine. как так может быть?аналогично пробовал немного по-другому чуть выше в коде и тоже не получилось в итоге закоментил. скажите где я ошибся и как правильно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2018, 13:12
Ответы с готовыми решениями:

Нужно найти в чем ошибка, сам не могу:)
Нужно найти в чем ошибка, сам не могу:)

В чём ошибка? Никак не могу найти ошибку
https://pp.vk.me/c614926/v614926630/dadf/F_B_-fPWAMo.jpg

Работа со списками. В чем такая глупая ошибка не могу найти?
В чем такая глупая ошибка не могу найти? program sp; type {Тип основных данных.} TElem=real;...

Найти сумму элементов квадратной матрицы (не могу понять в чём ошибка)
Доброго времени суток уважаемые форумчане. Пожалуйста подскажите в чем проблема, почему не...

2
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
03.05.2018, 15:39 2
Лучший ответ Сообщение было отмечено golosalex как решение

Решение

Цитата Сообщение от golosalex Посмотреть сообщение
Javascript
1
2
3
4
5
6
7
8
9
// setInterval(function(){
    ctx.clearRect(0,0,200,200);
    for (i=0;i<20;i++)
    {
 
        drowBee(roy[i].x, roy[i].y);
    }
    roy[i]=updatep(roy[i]);
// },30);
У вас строка roy[i]=updatep(roy[i]); за пределами цикла, и в этот момент i == 20, то есть выход за пределы цикла, отсюда и передаётся undefined в вашу функцию.
Javascript
1
2
3
4
5
6
7
setInterval(function() {
  ctx.clearRect(0, 0, 200, 200);
  for (i = 0; i < 20; i++) {
    drowBee(roy[i].x, roy[i].y);
    roy[i] = updatep(roy[i]);
  }
}, 30);
https://jsfiddle.net/rgyqhcq6/
1
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 627
03.05.2018, 19:18  [ТС] 3
вот я слепой!и как я это не заметил
0
03.05.2018, 19:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2018, 19:18
Помогаю со студенческими работами здесь

Не могу найти в чем ошибка. "Вывод на экран чисел от 1 до 10"
Пока только начал изучать язык Ассемблера и уже столкнулся с проблемой. Обучаюсь по книге &quot;Изучаем...

Не могу понять, в чем ошибка
#include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; using namespace std; class House {...

Не могу понять в чем ошибка
Задание: Печать в обратном порядке элементов вещественного файла до элемента, номер которого равен...

Не могу разобраться в чём ошибка
Массив заполнен с помощью генератора случайных чисел. Разности (1-2,3-4,..,19-20) отсортировать по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru