Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
( ~) T- ~& T# O4 X; j$ C/ J; u+ Y0 D4 I
, ^; @  R7 C" g+ d3 T, c
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
) ?! o1 q" I6 G6 K  Y+ g
! S1 _: w2 I8 C6 N- z* n- }$ l4 X( c
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
- l! D5 {: i: q# WЗдесь можно:
! U6 B6 j+ P  U) F% Q  \; d
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.3 Y& d3 h$ O8 u  \2 p; s
; g* i% ^8 Y, A2 O8 K
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
4 p1 g& W$ d4 h3 i( n  WАстралия ?8 {/ u9 c- l7 K6 {( L

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
: _7 M5 V% I* B9 L3 pМожешь подробнее объяснить, почему мы проверяем значе ...
; I0 W" ^* `- H- }1 T* r; K! c; @
Привет, AlexCoder!- s3 h5 }* a7 W3 ^0 j
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.5 ^- k: f2 {, u

1. Защита от некорректных данных
  U( b7 Q$ z, g9 s, `2 m* AЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
* ~4 O! l5 K# W0 D% aПример на основе Player.java из L2J_Mobius:) z- p- s0 H) T. I5 Y
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)8 A* p% }1 T8 L1 Q
  2.     // Проверяем, что новый уровень больше 0+ r' g) ]5 |* f4 [* a9 ^! B
  3.     if (newLevel > 0) {
    " X0 E! W7 g2 G7 y9 h  ]* s& q) G
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    1 J  m; R8 h7 S/ D$ l4 h" c; n9 l7 c* T
  5.     } else {, _4 [% f% X" q. X  g6 X
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");. ~& G5 Z, Q, g/ ^: I( Z
  7.     }
    & s2 s4 S( Z( p2 s+ S) ?
  8. }4 T4 D/ p9 g3 o+ H  S
Скопировать код
Перевод и пояснение:3 T0 M3 m1 a* m6 E/ ?- _1 W& Y
setLevel(int newLevel) — метод для установки уровня игрока.4 Q! B/ D: E. v  u* X% O3 h0 v- Z
Мы проверяем, что новый уровень больше 0:* J6 |$ P8 X: W! T1 v9 I
  1. if (newLevel > 0)
    ; b4 P; O7 K/ c# ~$ R9 N5 i" \
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
- h3 r: H$ u6 H: y( _, g3 v8 t9 l3 xЕсли условие выполняется, уровень устанавливается
8 c5 ?" `% ?* b% k( ~' r# H8 m  z
  1. this.level = newLevel;
    0 E$ ?6 w" `, ?$ Y5 d
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
3 G4 g8 y& B$ \6 I) S- |) ]9 q: n( H' C/ U- _; b2 ]
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    , s3 ^( D7 j9 L+ V; l
Скопировать код
2. Логика игрового процесса
: T0 p: Y0 I& I  eПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
) _7 q+ n9 M$ {0 tИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
8 m& q% e9 e* ^7 Z8 h( _7 I
' D& x- O7 M. h, P4 j' i) YP.S.! H4 M3 V( k" J/ [$ @. x5 z
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
1 T4 v# j" c- V) M
: E. ~6 e, C2 O  t
9 a2 r* ~. E6 }+ q  M
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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