Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 8 ]/ ^2 ^* z3 u! ]/ U5 a

( \! Z( n" p9 P% ]( D$ g/ F  u3 u9 E( U* L$ h
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius/ y1 {4 Q& _6 G0 t. O  A

' o6 T! M/ D6 O, K) `' |# p$ w; t: {# M2 ^8 ~% v8 h
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.# }/ A4 t) a7 b4 \7 Z1 H7 p( [8 o
Здесь можно:
- u' e5 H' e$ \$ ?. ?* ?
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.) R3 D2 j$ @! w3 R  V
; z2 |/ C" ^. r
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
, H7 v* E4 B* z% \% E- o, R$ h# q5 JАстралия ?
! [, M' i0 h0 d3 y3 M

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
  W$ s$ {  x3 x5 _; l# RМожешь подробнее объяснить, почему мы проверяем значе ...

8 p9 v* Y0 S; Q: p, fПривет, AlexCoder!
* u" ]6 I! Y2 ^% T- tДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
1 i# N7 A1 H: P9 F; P
1. Защита от некорректных данных2 H& |2 H  [  Z; |% V
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.. O: y& S& H5 w1 ]( u" n- u% e5 Z) K0 O
Пример на основе Player.java из L2J_Mobius:
( s5 }: g) I6 {
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    & a; k' T. g9 K8 j
  2.     // Проверяем, что новый уровень больше 0
    ) p" t3 x( D/ m4 Z
  3.     if (newLevel > 0) {" L" p6 ^$ K. ?+ t
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    % M7 N# m* c) T$ |6 H1 z& w, N7 E# e
  5.     } else {  d0 {. s( I- p9 V5 C. O
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    # a6 L) Q2 S  }5 i7 N
  7.     }
    6 F& h! B. e$ |. U
  8. }
    * _" L! e$ ~: O+ z; [! P, K5 {9 N$ m
Скопировать код
Перевод и пояснение:9 a+ L% `' A" p. I7 [3 M" m
setLevel(int newLevel) — метод для установки уровня игрока.4 z" C* m, |' a( R. n& }6 n7 T0 G
Мы проверяем, что новый уровень больше 0:
6 i! }+ H+ P# x' c! q6 `% c
  1. if (newLevel > 0)
    - _( F9 R9 I, P( a# s2 H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).% R) N% u- [  c  z
Если условие выполняется, уровень устанавливается) w" i2 I$ F$ l; O+ b  `. u( d
  1. this.level = newLevel;
    ! \( {# T$ ]/ f8 x$ R$ c
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
+ W4 @; Q, H0 D" r1 W0 [* ^8 S/ }, F7 G3 j
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    " b: e/ ]4 l, j9 P& L8 t
Скопировать код
2. Логика игрового процесса
% Q) }8 D1 u( F6 S: CПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
+ x" g! X; V# TИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
% @! ^$ B, \4 G: g% G6 r  M* N/ F: U4 m2 J# L
P.S.
, M- Z- o1 u  I( N; _Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?% ?, U2 E/ R; l0 x! d, T% _

3 Z( t* t* ~0 n3 k1 @: A9 [/ r/ t( t. \/ A
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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