Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34   J8 B/ }' e' Q1 Q; z

. b% Z' n5 `) c: ^
) @+ S* O/ ~# b2 jШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius  p; F1 L% Y- E

1 |" x) w5 E2 Y8 z( q8 P) v
6 R: u" R- p: I- \* \Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.) D# y% q1 B' O; k- ~( Q$ f
Здесь можно:2 \( O' J5 H, V2 Z( g: {; H$ G% o
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ! ^9 g3 K/ a5 K& f3 t
0 ~6 v7 d% V* o
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?) v6 e+ e' Z+ k( b& P1 W8 n
Астралия ?
$ B6 n3 r+ x% O2 Z

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32. H3 f1 _6 H! w, o
Можешь подробнее объяснить, почему мы проверяем значе ...
8 V' N6 D! ~' S# W. ]( h0 L, u
Привет, AlexCoder!
9 v9 G2 g, I9 o" D* N  U& kДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.5 u: w; D3 ]2 E

1. Защита от некорректных данных9 o0 }9 \6 W, ]6 Y5 M& G
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока./ R( F1 H, k: e: `/ Z4 E
Пример на основе Player.java из L2J_Mobius:; E" }6 S. t; i# z1 x
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень). z9 q, V5 l1 Q
  2.     // Проверяем, что новый уровень больше 0
    * N. Z1 u! o* N! t7 o
  3.     if (newLevel > 0) {: k1 p& M: {- o" t( g+ y. J& f
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    * z- _0 m( Q# P8 A4 P
  5.     } else {
    / d( \1 X7 A& w- K. [
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ! q! G( m( f- u. E
  7.     }
    8 U1 E: E0 ]2 l% e7 D3 ~; M# W5 e# \
  8. }! `) v+ x6 c' u" r
Скопировать код
Перевод и пояснение:
* v) j' h" ]: k6 Z# T5 [, W$ ZsetLevel(int newLevel) — метод для установки уровня игрока.
: Z+ \! q' \, \. ]+ uМы проверяем, что новый уровень больше 0:
( t+ C( c( r7 J  U& g
  1. if (newLevel > 0)
    ) [3 w& o+ B* ~/ F
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
' ?$ @! J5 Y/ }; z0 j1 uЕсли условие выполняется, уровень устанавливается7 f9 G1 L  J" Y6 J
  1. this.level = newLevel;
    ! @& c! L, U. W
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
0 p' j/ V+ z' x+ i; [7 v
6 x% a6 R3 x, b' O5 D- y. U6 M
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    / C: \, ~! B) Z3 ~5 R2 i5 Z
Скопировать код
2. Логика игрового процесса
2 ?) N8 N5 W7 n. V  _9 p) mПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре./ }1 a0 [1 R" x/ {9 ]* p
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.0 t2 m) ~) S% L( ~, W

2 ~1 L1 r5 O0 T0 \8 bP.S.
. A: d6 e2 I$ o  [# _+ WДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
2 c6 n  d' i' K- a$ S8 F/ j0 q- W3 X: l9 E2 m% i

, q# [2 E- b4 Y
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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