Top.Mail.Ru

[Руководство по Java для L2J] Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius

[Скопировать ссылку]
Astraliya Опубликовано 2024-10-17 21:33:27 | Показать все сообщения |Режим чтения Распечатать Назад Вперед

Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!

Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
8 f8 r8 c- P* N( d/ d5 a8 k1 \3 P. F: g; p
$ v3 O  P( G0 F7 T: N
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius, W- j3 m  |3 v# \6 t  t
  k2 N. C2 p# y/ k8 j0 I, Q% `
$ K# q' Y, w3 I4 j
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
" i# x" P! T+ n, s4 kЗдесь можно:6 H7 t7 e# {9 s/ b9 Z
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.5 ^* E! s' _) V  U% {5 o) f" @
: x2 _7 f4 ^; R) f
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?6 {3 D) n0 G; ]+ ^) |/ O8 U, b. |
Астралия ?
7 J9 N; m* p! u6 |6 @% A: L

Сообщений в теме:2

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32& p' u3 i( c1 M
Можешь подробнее объяснить, почему мы проверяем значе ...

6 b* r/ u, v8 i7 V- uПривет, AlexCoder!( ?5 V* M9 e2 I6 G  e
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
& @" q# G; w5 z! A/ p: \% V
1. Защита от некорректных данных
( E, T5 b5 n/ ~  {& _) J! WЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
( e0 F  I; q1 LПример на основе Player.java из L2J_Mobius:8 m7 R. G: r* ]) s) k
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)4 g) ]1 S" k9 f6 I  o
  2.     // Проверяем, что новый уровень больше 0, f! Q& s# D) F
  3.     if (newLevel > 0) {
    ! f; j! M% d0 ]' H  y  }( E5 |' O" X
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    3 ?& F: e1 f6 F. g6 E* J" i
  5.     } else {
    % I* R" C8 s. z4 \5 ?8 R. a
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    % H7 V) Y* x1 {  p- r! f
  7.     }$ z3 n* q0 D6 C" T
  8. }# {1 Q: v# {6 Y$ \
Скопировать код
Перевод и пояснение:9 s7 H  `/ O; K; a1 y
setLevel(int newLevel) — метод для установки уровня игрока.
1 k7 d2 [! k9 c9 O- |$ }Мы проверяем, что новый уровень больше 0:  T1 G( }1 ]. Z3 i# B" t
  1. if (newLevel > 0)3 ], H/ W1 `% Y& ]7 e1 [8 `
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).- l, h9 g0 E; k3 Q+ c
Если условие выполняется, уровень устанавливается3 n: T& e1 J$ r' T" e2 D0 ~
  1. this.level = newLevel;; x2 K, z6 w8 S+ _( X
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
) }" O4 M! w* r8 w5 a3 I& I" N; N. W" a8 r0 L, }
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");- m8 x4 p1 O  N& z. @
Скопировать код
2. Логика игрового процесса
- u, J, P( L! w( f2 {3 ?* f4 h4 lПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
4 c. N5 @  ^) J" m, v, T% a: W6 U1 }Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
; Y! v% s; ], o5 @+ \# i3 c0 P5 p; n  g' `$ x
P.S.! k% l5 {, V0 n  G3 A
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?( f+ d. f& A6 Z" L- i/ l

/ v' `& K, a9 D; Y. C5 c4 {6 w  u& h. o! B6 Y) m0 y; _
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

Правил начисления баллов

  • Выдающийся вклад

    Прилагайте постоянные усилия для процветания форума в течение длительного времени или много раз выдвигайте конструктивные предложения.
  • Авторитет сайта

    Участники, внесшие выдающийся вклад в работу форума

подписок0

подписчиков0

постов9

Опубликовать
Сектор творческих людей
Горячая линия

638638758

С понедельника по воскресенье с 9:00 до 23:00

Обратной связь

admin@artace.ru Онлайн

QR-код

Powered by Discuz! X3.5© 2001-2021 Comsenz Inc.