Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 2 F1 K6 k# }3 |6 }$ T+ l
8 @6 e- T6 W+ t7 V7 U" ?/ K
5 ?! S* F% C. u; ~/ f# S9 J8 K
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
; E% D" Y0 u5 W* P! H* F! z5 j( W: C4 j) D! [" M8 U! A
( K& v. X+ a  O& Y  q  ^/ J3 J0 Z
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.5 [4 O. n2 q  `- p( p. k4 g& ?
Здесь можно:) H! W+ s+ Z4 a/ i1 n, S, `
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.: U$ W( K5 e, k4 \
" \7 ~5 w% Q9 e" D: m# J( ?0 l
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
  ^3 \) `" h% P, BАстралия ?" T2 a! Y: e) ~! c) X

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32& p; c2 N9 D9 F  [/ h$ o. X
Можешь подробнее объяснить, почему мы проверяем значе ...
: P+ D5 K; @& B( q# q* k
Привет, AlexCoder!" J; ?5 O- X4 r
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
( D9 S: E4 a# l( I, B9 [. R9 M( u
1. Защита от некорректных данных! f6 Q( J6 |3 D& _; J
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.9 e6 g7 E8 d3 s, F% g
Пример на основе Player.java из L2J_Mobius:# c, W' O6 T0 y% K0 K
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    0 A6 @3 X! S8 b, ?# f( y" Z
  2.     // Проверяем, что новый уровень больше 0) Q$ y4 t7 b6 j8 A5 y+ D
  3.     if (newLevel > 0) {; Q; x; X  x9 ~) R0 m; l+ m' s8 C
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    : [- w. D) t# h
  5.     } else {
    ) g& J& \' B+ u) N! r
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");' T! j3 l0 a: n# Z  k. _  k
  7.     }
    & w. l+ r8 n3 Y& [3 i9 x
  8. }
    1 v3 v. J9 ~/ }4 R$ @$ L5 R7 N- S
Скопировать код
Перевод и пояснение:
! Z0 e  m0 {+ v+ @setLevel(int newLevel) — метод для установки уровня игрока.; i4 Z+ N. v1 G2 l
Мы проверяем, что новый уровень больше 0:2 j! |& f. V5 ~; H
  1. if (newLevel > 0)( W8 S' {$ s4 q0 n6 H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).) t3 ]9 k- \, p
Если условие выполняется, уровень устанавливается: `, E' S! K; d: h* W; A
  1. this.level = newLevel;
    & H% K  Z+ P( P+ ^
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
' {( ^5 Y6 T2 F) Q4 d- T1 f! H' n! \" I
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 T. C5 u3 A& t+ m0 p  D
Скопировать код
2. Логика игрового процесса- z9 s2 G6 \. r/ Z6 W
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.. N: q; ^, c9 {. l
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.- E* V1 x7 M, K6 }0 s

( x5 l* `& f" a& b: H, f9 UP.S.+ q5 \# q' A! w& Q+ `9 B
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
( o7 {6 M: @* n4 }3 O! w8 u+ H  G9 X* p

% N/ `. M; i3 G, R
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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