Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 , C: g4 [+ m2 G

4 R* \1 K+ P: @
, ]* w( ~6 Y; e' @: c1 E, E' hШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius6 o  r$ f( o# w+ ^& n
6 A% k1 ?6 t; j( a9 E4 X
! S  e" q) Z7 Y  ~: }: u
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.- A9 O5 |9 s! C; y" A$ i
Здесь можно:$ f3 B7 F3 `! d8 j/ e
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.  E' x& S$ p2 J

6 ~: Z1 d/ T; a2 [$ Z& @+ w- }7 r  lНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
# Z. f! L+ x2 K8 P5 }Астралия ?
) }/ a9 p- ~2 Y% a6 m  v  A  X; A

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:321 j" e, Q7 f# D3 b4 H9 `
Можешь подробнее объяснить, почему мы проверяем значе ...

" g* C& ?7 Z4 {- O; _Привет, AlexCoder!' q3 E0 y7 C1 i& M' O) E3 d  k2 Z
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
4 B1 K( q' n' Z2 M! Q( ~
1. Защита от некорректных данных
6 z& f% x& K, \" D) lЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
# g. t  J) L  ^) M8 L/ s  g3 ]Пример на основе Player.java из L2J_Mobius:" ]: l0 H# t9 M/ n8 c
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)+ W& R" t! `: Y
  2.     // Проверяем, что новый уровень больше 0# c- Q. ~& ^' b/ k; Y! C; t& s
  3.     if (newLevel > 0) {
    + c+ B. D' z* k
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    # v/ W0 ~4 N+ Y
  5.     } else {
    ) z8 W' Z' s( Q2 m1 O
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");6 E. ]' b8 V+ j
  7.     }3 i* Y5 \6 n/ K1 G+ l
  8. }
    ! N6 Y$ [& X) J' D( u/ |6 A
Скопировать код
Перевод и пояснение:+ p7 `( |: c. a* @9 Q
setLevel(int newLevel) — метод для установки уровня игрока.7 M5 `: Z! T8 j) {
Мы проверяем, что новый уровень больше 0:
5 d3 ^+ O# P* Z! `. U
  1. if (newLevel > 0)
    ! u  i( w$ w0 a. k' I% N( ?
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).3 t: Z/ b9 j# u; ^1 w% w
Если условие выполняется, уровень устанавливается
# a7 Y8 u# \! Q3 @" w6 C
  1. this.level = newLevel;
    ' t7 w  r( c- z" C1 d. l- _$ S
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:* S6 _. n- c" G( l' B' G
5 T% o  m- I5 V! Y) G( M3 W
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");% g2 L4 m& R& E! O6 V1 n8 A
Скопировать код
2. Логика игрового процесса
; Y% o! H. ^4 a+ t) Z7 \( Y; GПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.6 l" G% L: P  W, t3 Y2 Y4 w9 m
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
% f1 c9 \$ O% T+ }6 |# y- y5 W- @0 K4 Q3 ^" ]* t
P.S.3 ]8 J4 G6 P. Q0 o" ]+ }" `
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?4 h) R; o4 Y& d  f, X* e

0 [% n- F( m7 P0 c, l" s0 V5 n- L) `( O' s; N
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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