Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
. H5 F, Z0 P6 H5 w0 j2 P
+ [* ^# W1 O% ^9 a+ \( x, X# ~# A* S7 j
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius  K0 L( G. g$ L4 U, o
& J  p$ i' S: T/ k7 Z7 F

# \* H0 L3 Z* O& l- WДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
) K! I, r  `" L0 g& b( k& pЗдесь можно:3 W) q  h# h# \4 P9 x- g
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    $ G9 Q# p1 O% T$ O) }
& s' W' m. i6 m6 M& g
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
; {4 F7 k9 e) S! tАстралия ?
8 X1 ~& O3 L$ L* [

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
! C  `+ ~7 v+ j7 c6 x3 x: x) rМожешь подробнее объяснить, почему мы проверяем значе ...
, a9 U& Y) ^, y: L, E
Привет, AlexCoder!
6 {. H4 n- j% p& J! r: mДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса., i' ]# T4 P- h% p9 {0 v

1. Защита от некорректных данных/ S+ M; N. j( k5 s+ z$ p. T+ T
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
% `- ^/ N/ K. q  M( y, G9 BПример на основе Player.java из L2J_Mobius:& R" u: O& I3 U, P4 Z
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)( Y5 X1 L. R* k7 ^. H
  2.     // Проверяем, что новый уровень больше 0! c* C4 R! _3 [8 a: c2 R* ^
  3.     if (newLevel > 0) {( T, {' Q! m* P
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    " }! T# \- ]0 N* n" h. n0 d
  5.     } else {9 J! Z1 s  c8 U9 |- Y- ?5 ?# u
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    $ f4 F! N9 Z1 q8 L
  7.     }
    5 \% k% u$ I) v% M# ?
  8. }
    + m( j4 q- p2 ^% Q, V
Скопировать код
Перевод и пояснение:& G' Y# i4 l, I' Y
setLevel(int newLevel) — метод для установки уровня игрока.
) Y+ K" B) u& b; U' C" w; `* t+ gМы проверяем, что новый уровень больше 0:7 l4 N% b8 C+ s' a+ A
  1. if (newLevel > 0)8 O% a; O/ q" z
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).) F# i0 f* M1 c, o
Если условие выполняется, уровень устанавливается
+ o& B+ c2 Q: J7 c+ X
  1. this.level = newLevel;
    8 F2 h0 \9 U9 t2 Z, a, _$ f- q1 l2 [
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:$ [6 I. B1 J7 j4 K# g+ _

: Q9 n7 G' B; h" u0 t& G% ?
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    : B7 G& \2 e. m: z
Скопировать код
2. Логика игрового процесса* I- u' M, a$ Q& Z, P4 L
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
- b/ G0 b1 o+ L9 NИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.' q. g! t1 D) Y' h
" N$ p/ i) [7 o3 c$ ^. M& q
P.S., `- l4 _3 x# X, S3 A# }2 A' y
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?; Q3 c" @5 z/ Y9 J" `, Q
6 J  q6 S( h2 L& V; C
+ F8 R* y, X7 ]  w9 d/ i
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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