2013-10-12 2 views
0

Я создал инструмент, который будет использоваться в создании персонажа для видеоигры.Неправильное поведение функции, что не так?

Проблема у меня такая:

Воин и Wizard имеют 30 очков каждый потратить на магическая силаилиоружие Мощность. Я попытался создать лимит, чтобы вы могли потратить максимум 25 очков на Power. То, что происходит, это не позволит вам потратить оставшиеся 5 очков в другой Силе. Кроме того, он рассчитывает как на Warrior, так и на Wizard, и этого не должно быть. Каждый из них должен иметь индивидуальные пределы 25.

FYI: Я также устанавливаю ограничение на Силы, чтобы они могли идти только до 75, что предназначено.

Вот CODE AND DEMO

+1

Вы можете попытаться изолировать, где именно ваша проблема ... абсолютно нет способа, чтобы решение вашей проблемы требовало от нас знать все это. выяснить, какие части ваших программ работают/делают то, что вы хотите, какие части нет, узнайте, где все пошло не так/когда вы не понимаете. сделать надуманный/упрощенный пример, демонстрирующий только проблему. затем опубликуйте это. см. http://sscce.org/ –

+0

Инструмент предоставляет 30 очков для проведения в 2-х областях с лимитом в 25. Это не позволяет потратить оставшиеся 5 очков в другой области. Я не могу его упростить. – user2873008

+0

одной простой вещи для упрощения было бы просто показать нам только один «класс» (воин, волшебник), потому что проблема, похоже, одинакова для обоих. в упрощении и рефакторинг вашего кода вы действительно можете наткнуться на вашу проблему. EDIT: ах, не понял, что это те же 30 очков для обоих классов. –

ответ

0

Как @JAL утверждает ptsSpent является глобальной переменной. Ошибка происходит на линиях 30 и 32.

if(pointsVal.value == 0 || newNumber > 75 || ptsSpent > 24) return;

  1. Рассмотрим построение класса «символ» с помощью мастера и воина быть экземплярами (в рамках данного примера). ptsSpent будет частной переменной класса.
  2. Консоль, которую вы связали с списками «9 предупреждений». Вы также можете решить их. Просто хорошая практика кодирования, чтобы компилировать чисто, предупреждения существуют по какой-то причине. :)

[править] В основном ptsSpent должна осуществляться таким же образом, как и weaponmagic стат переменных уже есть. Эти переменные принадлежат отдельным объектам.

+0

Я уверен, что ваш правильный ответ, но я не знаком с javascript. То, что я создал до сих пор, полностью отличается от обратного проектирования других инструментов. Каким будет класс «характер»? Эта? 'Характер (воин, волшебник)' – user2873008

+0

Смотрите мой EDIT выше. Вы можете просто следовать своим собственным примерам для оружия и магической статистики для рефакторинга, где объявляется ptsSpent. На самом деле не уверен, как правильно построить объектно-ориентированную структуру в Java-скрипте. Извините, что я читал быстро и думал в более общих терминах. – Garrick

+0

большое спасибо! – user2873008