Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 * _; c$ ]$ a. u: \
  p4 Q+ r) q6 q5 ?# h& r, W* O
! Q/ C" M" _! ~+ E) A! D$ E1 q
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
5 v  B( [, x" \2 a* l& S7 Q( n) w; r
  \2 |. a2 v; [3 I
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
) c, \$ ~( K1 M, n6 {& mЗдесь можно:6 W" k' [- q. D3 b& E
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    % `( M' y4 I9 E% v3 Z* v

, a7 t4 I5 F* F+ n4 zНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
) T# P9 m( Q) R  Y: \4 }Астралия ?7 s7 U5 N1 P  N9 |& m+ }3 k

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32: ~4 x1 J8 w4 |. {
Можешь подробнее объяснить, почему мы проверяем значе ...
" {# }+ T3 r  E
Привет, AlexCoder!% ^6 }  h0 l, M' _! Y
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
; D8 A/ b" I" f9 ]* }! @+ m' F/ k& n
1. Защита от некорректных данных
+ n  h5 e0 r' }: B  iЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
3 W3 m! u, w- \+ r$ y' mПример на основе Player.java из L2J_Mobius:
; u9 I. B! H- \! a  @8 `. p
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)8 A$ H6 ~! w. e" o+ N6 N
  2.     // Проверяем, что новый уровень больше 01 g- K( F& _* D  j/ H7 r+ H6 s
  3.     if (newLevel > 0) {3 M; n0 P& D6 i
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    " n* d+ W( S6 `. W2 l/ K
  5.     } else {" ~% o/ N, L8 ~* N) s
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");' R$ w/ ~& D1 ~' ^; c% G5 F
  7.     }
    0 F9 l8 y& F/ X, ~& I
  8. }
    0 _- _$ g3 _; M  _( k2 M
Скопировать код
Перевод и пояснение:
- e4 x: I# ?$ E8 B2 WsetLevel(int newLevel) — метод для установки уровня игрока.4 \, ]1 {& k/ ]9 y/ d. t
Мы проверяем, что новый уровень больше 0:8 f$ n& j( R# K. Z( f
  1. if (newLevel > 0)
    + o, S/ `  w' E9 Z1 s) ~  D
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
4 D) v/ y. g2 U) j" R, gЕсли условие выполняется, уровень устанавливается3 N: B( c; z  X( z+ O
  1. this.level = newLevel;' g' r2 w8 ~6 k" S8 E
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
' O! `/ Y. r$ j2 P
! K! k6 D+ p  C4 {9 u$ v
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");% S+ o! H* `* A* F! q
Скопировать код
2. Логика игрового процесса# i3 x" q3 H1 l3 q) ]( Q8 I
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
3 l5 Q/ Z/ O  M- s: E) IИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
; t2 ?* k( \: G! ~/ {$ p0 {) D: r6 k8 x" A
P.S.
2 j- C7 ?+ V% R: J9 @Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?+ \5 R& l1 s9 k3 J' W% U

0 q4 e! d$ f" p& K$ L. N
8 t( m( ^8 t. ?
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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