Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ) W" C2 H5 K. j. v# Y. Y1 _

% ^* j% f$ H3 V
9 G4 F  v2 ~- A# D: ~! n2 [Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
* _& V# [, _5 \* y; }
* y( o* a- H9 K2 h# g2 x2 ?+ U3 |8 j/ {7 i/ _
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.2 B$ ^, K, F6 y7 o$ z8 ~
Здесь можно:
* A5 [" ?, V6 {$ @
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.+ I" s( r* }0 P' J7 u8 R  j

7 |! W$ z) B# Q6 m6 DНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄
, H. Y) r8 \5 d1 ?# S& VАстралия 🌟
. {2 K' Z) P' D1 Y1 p: k! o

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

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

. ]+ c% p2 U4 D& w+ R: W" nПривет, AlexCoder!
( \5 m5 Y. E: a: z9 GДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
: u! Q$ {2 {, k* C5 h  p# b6 g
1. Защита от некорректных данных
$ V  i6 K3 S8 N6 `* a" d5 QЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
8 H  T" n, e* z5 B: s" g8 TПример на основе Player.java из L2J_Mobius:
( ~1 {* c; ^5 r, D
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    ; s* e, g; v8 p' _  e3 w
  2.     // Проверяем, что новый уровень больше 0
    ! |1 m6 V0 G% S( k
  3.     if (newLevel > 0) {
    ( z/ e. _0 e$ f8 W  e* T
  4.         this.level = newLevel;  // Устанавливаем новый уровень8 U( l  [# o4 B, s$ m* e/ l2 p
  5.     } else {
    4 r! u+ m2 }" S- e# O  V# O2 g
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    % ], t& m1 t9 U. N, O! t, L6 e7 w
  7.     }
    ' L0 v. _7 L; G. U
  8. }5 F- C  B* y; t& x
Скопировать код
Перевод и пояснение:, S$ C9 M. p+ w- q5 t2 m% Z
setLevel(int newLevel) — метод для установки уровня игрока.
$ @* B0 Z" v* Z5 ~Мы проверяем, что новый уровень больше 0:1 O7 a, S/ B0 l. q3 M, w8 a
  1. if (newLevel > 0). F1 `9 v7 G, ]! P3 x% s, ^
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).8 g6 W& u3 C  Z, ]
Если условие выполняется, уровень устанавливается
" |, U* F, A" h) V5 D% D+ u
  1. this.level = newLevel;: i, K$ Q( Z. z2 t# E
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:+ D; s. K1 _& o- \! \4 R& o
4 f0 I2 Y- |& `2 G6 `# O, W
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");6 M" _/ O- b/ V  b0 s: D
Скопировать код
2. Логика игрового процесса) _2 J, m# ~* m( H2 u' t) V
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
. T2 W- K- C  |% U/ cИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.8 O" O: C) c5 R$ B2 U  O' D) k: |

, V% ^& P9 C! O: i; fP.S.
4 _' w- y5 J9 P. W8 T( o% @5 QДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄0 u, g+ h. q9 `6 W
! P) J! T- c7 W6 C$ S9 O
. O2 g. R8 p# Q3 v' P& c
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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