Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1

Не работает код: TypeError: Cannot set property 'x' of undefined

25.10.2014, 22:50. Показов 7851. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в общем говоря вот код ошибок как логических так и синтаксических может быть много
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function (keys, x, y, mode) {
            mode=mode|| "done";
            if (entity[keys].sys){
                mode="done";
                entity[keys].sys={};
            } else mode="start";
            if (mode == "start") {
                mob=entity[keys];
                x = x - entity[keys].pos.x;
                y = y - entity[keys].pos.y;
                gipotenysa=Math.sqrt(x*x+y*y);
                ygol=gipotenysa/x;
 
                mob.sys.x=Math.cos(ygol)*mob.speed;
                mob.sys.y=Math.sin(ygol)*mob.speed;
                mob.pos.x += mob.sys.x;
                mob.pos.y += mob.sys.y;
 
 
            } else if (mode == "done") {
 
            }
        }
по идее даются координаты x y
вычисляется угол движения(тут может быть логическая ошибка)
вычисляются дельтаX и дельтаY по углу и движению обекта(тут может быть логическая ошибка)
записывается в "базу" новые координаты
============результат===================
должен быть результат новые координаты обекта по углу занесённые в "базу"


но он пишет такую ошибку "TypeError: Cannot set property 'x' of undefined" строку не указывает поскольку сейчас в тестовом режиме то есть ввожу эту функцию с консоли

============P.S.===================
про гипотинузу и катеты ничего знаю знаю ооооочень поверхтностно - это в 7 классе не изучают так что прошу не ругаться трегинометрическими терминами

Добавлено через 1 минуту
и ещё по прошу fraidzz переименовать эту тему по понятнее потому как я не знаю как назвать

Добавлено через 1 минуту
ещё p.s.
entity - типо моя "база" в виде объекта

Добавлено через 5 минут
написал так не понятно вообще

3 шаг немного другой
вычисляется дельтаX дельтаY по параметрам- угол (уже вычисленный) и гипотенуза (скорость записанная в "базе")
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2014, 22:50
Ответы с готовыми решениями:

Не работает скрипт (Uncaught TypeError: Can not set property 'onclick' of null)
Всем привет. есть скрипт на JS (простое прокрутки фоток назад и вперед. Вот мой код html <!DOCTYPE html PUBLIC "-//W3C//DTD...

TypeError: Cannot read property 'get' of undefined
TypeError: Cannot read property 'get' of undefined at SteamTradeOffers.doAPICall (/bot/node_modules/steam-tradeoffers/index.js:492:19) ...

TypeError: Cannot read property 'findOne' of undefined
в файл app есть метод xz который должен вывести инфу с бд, но когда я обращаюсь к модельке она всегда undefined ...

10
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
26.10.2014, 03:32
BANO, ошибка означает, что не может быть установлено свойство X у undefined
Теперь смотрим, где у тебя это используется. Лучше всего просто попробовать вывести переменную mode, и глянуть чему она ровна, так же вывести entity[keys]
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.10.2014, 08:31  [ТС]
Thisman, entity робит я для его форматирования функцию специально писал
Цитата Сообщение от BANO Посмотреть сообщение
x = x - entity[keys].pos.x;
чую анусом ошибка в этом но вот entity[keys].pos.x совершенно нормально используется другой функции
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
27.10.2014, 07:33
Цитата Сообщение от BANO Посмотреть сообщение
вычисляется угол движения(тут может быть логическая ошибка)
вычисляются дельтаX и дельтаY по углу и движению обекта(тут может быть логическая ошибка)
Вы что-то странное делаете:
в строчке 12 вычисляется косинус угла (точнее, 1/cos).
Потом в строчках 14-15 от этой величины берется косинус и синус.
Есть подозрение, что Вы совсем не это имели в виду, а что-то такое:
JavaScript
1
2
3
4
5
                cos_ygla=x/gipotenysa;
                sin_ygla=y/gipotenysa;
 
                mob.sys.x=cos_ygla*mob.speed;
                mob.sys.y=sin_ygla*mob.speed;
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
27.10.2014, 22:27  [ТС]
ludmila-sv, я же говорю может быть ошибка как логическая так и грамматическая
я про эти формулы знаю только то что они вообще есть в js )
а как по ним что то высчитывать, а точнее как ими пользоваться я вообще не понимаю (информатик объяснял, но я всё равно не понял)

Добавлено через 1 час 16 минут
ludmila-sv, честно ваша часть может быть логичнее (я не знаю\не понимаю)
может вам поможет
я вызываю так
JavaScript
1
engine.move.to("y", 100, 100, "start")
вот часть "базы"
JavaScript
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
entity={chest1: {
        type: "y",
        speed: 15,
        pos: {
            x: 100,
            y: 1000
        },
        width: 50,
        height: 50,
        direction: 1,
        //intellect: function (keys) {
        //    engine.move.4()
        //},
        onRadius: function () {
            //������� �����
            //radius
        },
        onStress: function q(a, me) {
            log(a);
            for (keys in a) {
                engine.kill(keys, entity[me].damag)
            }
            //go=setInterval(function () {con.log(a)},100);
            //setTimeout(function(){clearInterval(go)},1000);
            //clearInterval(map.tic)
        },
        className: "test",
        style : "\
            background: #000000;\
            ",
        damag: 20,
        health:{
            max: 100,
            now: 100
        }
    }
};
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
27.10.2014, 22:54
Цитата Сообщение от BANO Посмотреть сообщение
я про эти формулы знаю только то что они вообще есть в js )
а как по ним что то высчитывать, а точнее как ими пользоваться я вообще не понимаю (информатик объяснял, но я всё равно не понял)
Да не, я не о том. Вам эти js функции Math.cos, Math.sin вообще не нужны. Вам нужно представлять, как движутся объекты с точки зрения геометрии. Причем, вообще говоря, Вы можете сами задать законы движения - какие захотите. Но если нужно, чтобы движение было реалистичным, считайте, как я выше писала.

Цитата Сообщение от BANO Посмотреть сообщение
я вызываю так
engine.move.to("y", 100, 100, "start")
Что такое entity теперь понятно. А что Вы вызываете - не очень. Вы функцию, которая в первом посте, вызываете с параметрами ("y", 100, 100, "start")? Тогда что такое entity["y"]?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
28.10.2014, 22:18  [ТС]
Цитата Сообщение от ludmila-sv Посмотреть сообщение
что такое entity["y"]?
тут сложал на самом деле там chest1 и y
посути одно и тоже (по структуре) но с разными значениями

Добавлено через 5 часов 23 минуты
вот ещё шаг к решению проблемы
новый код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
to: function (keys, x, y, mode) {
                mob = entity[keys];
                log(x - entity[keys].pos.x);
                x1 =x - entity[keys].pos.x;
                y1 =y - entity[keys].pos.y;
                gipotenysa = Math.sqrt(x * x + y * y);
                cos_ygla = x / gipotenysa;
                sin_ygla = y / gipotenysa;
 
                mob.sys.x = cos_ygla * mob.speed;
                mob.sys.y = sin_ygla * mob.speed;
                mob.pos.x += mob.sys.x;
                mob.pos.y += mob.sys.y;
 
 
 
        }
вызываю так:
JavaScript
1
engine.move.to("chest1", 100, 100, "start")
а вывод такой
JavaScript
1
2
3
0 start.js:33
2014-10-28 21:47:54.785
TypeError: Cannot set property 'x' of undefined
Добавлено через 7 минут
нашёл грамматическую ошибку
вот новый код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function (keys, x2, y, mode) {
                mob = entity[keys];
                log(x2 - entity[keys].pos.x);
                x1 =x2 - entity[keys].pos.x;
                y1 =y - entity[keys].pos.y;
                gipotenysa = Math.sqrt(x1 * x1 + y1 * y1);
                cos_ygla = x1 / gipotenysa;
                sin_ygla = y1 / gipotenysa;
                mob.sys={};
                mob.sys.x = cos_ygla * mob.speed;
                mob.sys.y = sin_ygla * mob.speed;
                mob.pos.x += mob.sys.x;
                mob.pos.y += mob.sys.y;
                return "done";
 
 
        }
а вот теперь не робит логически
просто не чего не делает кроме того что в консоли есть ответы 0 и "done"


Добавлено через 39 секунд
вот ссылка на новую версию ссылка!!!
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
28.10.2014, 22:20
Попробуйте вывести в консоль mob.pos.x или какие-нибудь другие величины.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
29.10.2014, 21:22  [ТС]
ludmila-sv, ну нету у меня mob он равняется entity[keys]
а вы имеете в виду вместо mob.pos.x сделать log()
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
29.10.2014, 21:25
Я имею в виду вывести какие-нибудь промежуточные циферки и посмотреть, правильно ли они считаются.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
29.10.2014, 22:01  [ТС]
ludmila-sv, смотрите пройдите по этой ссылке
подождите пока квадраты сталкнуться и в консоль введите engine.move.to("chest1", 0, 0) и вам вылетят цыфры

Добавлено через 1 минуту
ещё
не робящая функция находится на 91 строке скрипта start.js
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2014, 22:01
Помогаю со студенческими работами здесь

TypeError: Cannot read property 'constructor' of undefined
function Range(from, to) { this.from = from; this.to = to; } Range.prototype.equals = function(that) { if (that...

Uncaught TypeError: Cannot read property 'value' of undefined
Не могу понять в чем проблема выдает ошибку Uncaught TypeError: Cannot read property 'value' of undefined. файл js function...

TypeError: Cannot read property 'length' of undefined
подскажите пожалуйста что тут не так и как исправить? почему такая ошибка TypeError: Cannot read property 'length' of undefined ...

Uncaught TypeError: Cannot read property 'left' of undefined
как исправить данную ошибку? и из за чего она может появляться? search.js:69 Uncaught TypeError: Cannot read property 'left' of...

Uncaught TypeError: Cannot read property 'createRange' of undefined
Вроде б все просто, но не работает function AddTags(Tag,Tag2) { document.forma.content.focus(); sel =...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru