Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 , E8 M+ j& A$ B3 U
8 G2 h) N$ f  }. w6 _( l1 q
6 o  C" b& B1 U5 Y2 S3 [
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
! `6 t+ U" e) z- N  o$ J1 f0 N7 L* R9 T8 G) E: I! D! v) m4 x

- Z5 {2 F8 Y/ F) H% jДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
' x$ u4 b, o$ x6 o; VЗдесь можно:  }+ P6 j) `' M1 u2 v
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.! b+ m* d( [& T0 H/ w/ O9 z+ E
" h) B- P% O1 y2 R/ S
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?/ O; r1 [2 w3 k, J! {8 k
Астралия ?
; u" _  i/ x4 {, G. D, c

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
9 j, U, N5 M# W; C, \Можешь подробнее объяснить, почему мы проверяем значе ...

1 g5 i0 U, T, k8 XПривет, AlexCoder!
. K+ [9 c3 E/ e. |# s) }" C) RДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
) T" n; t2 b, c" D, Y8 ]/ g5 v
1. Защита от некорректных данных
, Z: ?: ]+ b" ^- |& ZЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
4 X, T/ s% k  C2 ]  _Пример на основе Player.java из L2J_Mobius:* |/ G) [3 Q' ^. {2 v1 _
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)  x0 g4 j; A+ S! r5 k  G
  2.     // Проверяем, что новый уровень больше 00 c1 f; u" H8 u
  3.     if (newLevel > 0) {0 i4 I# \* s) ]+ M2 |: t
  4.         this.level = newLevel;  // Устанавливаем новый уровень3 {* B$ l& e9 e' Q8 Q) X' X; F
  5.     } else {
    ; a- t7 L9 B1 N# k4 Q" d( L
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");' J% U+ a( c  a" n: ?
  7.     }) N) o% A  ~; h: \3 ^* p0 h
  8. }& S2 P- ~+ o% R7 r2 r  J
Скопировать код
Перевод и пояснение:& c! U5 J/ |7 L6 ^9 d# Z$ {
setLevel(int newLevel) — метод для установки уровня игрока.
3 T, f0 e" l5 P: y$ [" [9 j) qМы проверяем, что новый уровень больше 0:6 z$ x7 [0 g9 O
  1. if (newLevel > 0)
    2 S7 S+ o2 I! A+ t
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
. }; `; \8 c. G: o  I9 _5 R4 P+ ]) pЕсли условие выполняется, уровень устанавливается7 {0 r/ d  {% C. ^* N
  1. this.level = newLevel;
    , G; |  d( s6 P0 b
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
9 L, m+ D' L% `  ]+ y- x- F. E( G1 v
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 M' c$ Y# g7 y
Скопировать код
2. Логика игрового процесса
0 b' B" s  R+ i+ yПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
5 [) g) h" }+ L8 B) w1 BИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.. ?! X5 l& b. M# S4 q# `# L

& I- G3 y4 q: [P.S.: i2 ]& l9 a" R+ I; `1 t1 r: O2 o
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
  A$ I1 B5 K! z5 K' i& G/ X" B4 |- d' W+ e* Q" Z; V$ t) y
1 H9 O1 S" Z) h. S& z3 X
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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