Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
+ @/ Z8 p9 _  s* e4 z5 R/ p& [9 S6 I  C
" |! P5 Z/ V9 N0 u# g: U
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
: r9 H8 S& p5 F7 C+ D& P, r
+ \* e2 A! \. _2 x0 ]& N& I2 a& C4 F
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
) H7 T+ b7 ~$ z  T/ G/ l5 wЗдесь можно:
7 d3 i% f. X: Y8 a
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.) |) M. j& I' \% m# E0 e
) {& C* k+ v- C
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄0 L: g# ^% N! Q, d1 n
Астралия 🌟. _0 g2 D$ r# h3 t: u8 V

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

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

1 @4 Z3 Z' z: E6 A3 u# c# R+ a$ hПривет, AlexCoder!
7 g) T2 H2 A' `4 m# \; ^Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса., B5 R% R; R0 S0 x. A  I

1. Защита от некорректных данных
$ ~' H1 \, |' b# EЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.3 c2 o4 l# j1 L2 R; r$ u
Пример на основе Player.java из L2J_Mobius:) W( D1 C' d+ }0 I
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)0 ]" v2 |6 l9 {# E
  2.     // Проверяем, что новый уровень больше 03 h' R. F1 V- x1 n
  3.     if (newLevel > 0) {* O4 D& ]" ~8 V2 h1 M$ {  `* c) x
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    # K* c0 V1 f$ ~1 z
  5.     } else {
    4 U- E, f0 d* y) I5 L. T0 {
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    5 e) `7 `5 ^8 B: b' W% ?
  7.     }# l! k' [$ `9 E+ V( N
  8. }9 Q8 t8 ^' W2 w: T* D
Скопировать код
Перевод и пояснение:
6 T/ A$ s; @6 z9 H" H1 u: csetLevel(int newLevel) — метод для установки уровня игрока.6 S" d4 L/ C. C( I1 R3 r* G9 ~
Мы проверяем, что новый уровень больше 0:" P. N1 i$ s4 E# `# z& i+ t
  1. if (newLevel > 0); y" u: s6 V' H# u8 H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
; r8 F( a& p" R/ N' f6 Z8 U+ _9 jЕсли условие выполняется, уровень устанавливается3 q0 S+ ?+ }# {- M3 I+ i/ R
  1. this.level = newLevel;
    6 b5 r0 ^; @" x. [6 ?7 W: C2 _* S
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
% g9 |* J/ \4 X* H4 S8 D
- X) w4 }' I3 F$ k' }
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    3 }5 Z  a) E' O8 y
Скопировать код
2. Логика игрового процесса
& n' \8 ]" |0 \+ mПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
* P8 x2 n# l8 g% W, N9 a+ vИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.& ^0 n( m; I! E' D8 p& m( T! c- G; l4 z

' b* R% x5 v' B' q+ y  xP.S." I* k, E  N# j+ d- \
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
' H, B/ k+ K* D# Q6 Y. |' ~4 }9 V

6 I/ e4 \8 I8 M. ?" B0 u
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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