Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 4 C: f9 w4 u) B" _! {4 U2 O

/ u! U  |- F5 B) g4 L/ D' R  h! |6 X' b1 R
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
" O" d6 I" c+ g+ m* j0 U, x
8 {/ a! l1 b4 ~$ i1 E9 l4 @- \6 S7 x/ l  t! H
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
9 S  P" j/ A* C6 j$ N- t1 ^Здесь можно:
3 s! Z3 R+ V2 g& V3 T# \
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    : S6 B, \7 S) r( ]1 B
: B5 D% E) p% k6 J0 G
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
$ \; {# m$ V1 Y" m. TАстралия ?
, I0 b# S5 p2 x% V$ d

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
! L  D! T+ g2 p* R; R& t8 d8 s' aМожешь подробнее объяснить, почему мы проверяем значе ...

$ o" A5 i+ c  S' v. S# X9 CПривет, AlexCoder!% V$ S  B0 X/ v+ d) C+ n
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
8 h9 q2 C1 o& x8 p3 Y6 l
1. Защита от некорректных данных$ Q" \# w2 }3 `; t5 `
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
- n' H) O0 N7 g& x1 _4 DПример на основе Player.java из L2J_Mobius:
4 i9 n/ S( i7 i- J1 b! n- e
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)5 y+ K1 U% Z8 V
  2.     // Проверяем, что новый уровень больше 0( T9 f8 {/ s/ k/ q+ \
  3.     if (newLevel > 0) {, e' t0 N5 r' d6 o- _
  4.         this.level = newLevel;  // Устанавливаем новый уровень4 h- s* _$ B: J7 l7 \$ Q2 N
  5.     } else {( Z" t9 s7 S4 ?+ s# r' a
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");: u/ ]' P& f9 M
  7.     }
    8 h  l& v' k( L, y9 `. h
  8. }
    $ _! S3 F8 E; F) N: m3 Q* \
Скопировать код
Перевод и пояснение:
% s2 f5 |" u. y; hsetLevel(int newLevel) — метод для установки уровня игрока.. J% b+ _2 }* v
Мы проверяем, что новый уровень больше 0:
, ^) V# F5 j( h8 n6 `
  1. if (newLevel > 0)
      X3 {' r# n( S3 {1 P) L
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
" m3 q. i$ }/ ^5 hЕсли условие выполняется, уровень устанавливается9 e0 J; `* L5 v3 \1 W
  1. this.level = newLevel;
    ) J: n6 Y& K3 I
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
6 f3 E2 Y4 i3 C" \) }
6 |& S- q, O, S9 o. O# E' a
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    5 s! H4 k* E6 a: B% F
Скопировать код
2. Логика игрового процесса
; E: ~  G; ?: _8 g4 J, wПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
  z1 L6 h2 O* C* }Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.. w1 ?: w" m. m/ U
* g$ f- G/ W2 T: H' P  ?
P.S.
2 j) g( y9 f$ a4 ^Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
- X, Q- B: Y! [4 }2 M/ o
, J! s9 l: y6 x2 D
; d: l% d0 H0 Q2 C* d% D
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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