Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 / c4 `6 f! y+ }/ T! E
  n& t( P; M& U/ h

* Z& U3 L) n7 y! }/ Q" d. pШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius, Z% L1 S/ E6 ]4 C

2 d+ V; w* e) }
; H! ]# [/ M5 \2 c. GДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
* Z' |! `# g4 L) i' ^$ [Здесь можно:
1 o/ ~% R8 c/ `
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ) w) Z( S4 |, D' s$ g7 }. |% s
1 P% I) Z$ L% L' P, c2 N8 q
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄7 W& M, w4 @, D- U; f9 y) _/ n
Астралия 🌟2 B1 e( Z1 V1 ?/ s9 |9 V- v* w

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
2 r2 p% Z% H. u# J  O% ZМожешь подробнее объяснить, почему мы проверяем значе ...

$ M8 T1 |  m& M5 ~1 I/ T& s& C0 BПривет, AlexCoder!& u0 H2 H& D9 p5 @0 V
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.- e2 h- C9 `7 w9 g! {

1. Защита от некорректных данных
9 O! `) r0 _4 A- b" K9 ^8 DЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
2 ^& S2 a+ R9 ^1 s# iПример на основе Player.java из L2J_Mobius:. `; ]* u& w, Q* d% y! r
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    9 t) j0 }0 g* k% P" e' @
  2.     // Проверяем, что новый уровень больше 0% i( a* `9 Z! n) W
  3.     if (newLevel > 0) {, H. [2 J/ d0 c5 Z' V. A0 f! [
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    % @& E% G/ b" {" E) k* n' g# K3 v
  5.     } else {) U  m5 ]  m* R) ~- Z
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    - O9 V6 ?! q/ \2 P- f! o  g8 B
  7.     }: t' V# R5 h# r3 s
  8. }
    9 j/ d  w  J4 `; Y6 h  K- m+ y" ?# r
Скопировать код
Перевод и пояснение:
; A. l$ l: B2 |* U$ x6 `setLevel(int newLevel) — метод для установки уровня игрока./ ]( U! O* F5 m4 V" j
Мы проверяем, что новый уровень больше 0:! T6 p# d3 X( x5 t( L
  1. if (newLevel > 0)! Q( p% \% a/ H+ x( G4 Q
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).' k" ^2 G6 E4 B: y
Если условие выполняется, уровень устанавливается, f# R3 E2 \( R# X7 K5 C
  1. this.level = newLevel;
    & I( \: P6 e8 M& O) R& p/ J
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
5 i) l( Q  ?5 p  ?  p9 U* f5 V/ C" X, ?! C8 @& L/ u) Z, r
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");1 D% j( i2 l8 n* o, ^2 j
Скопировать код
2. Логика игрового процесса
8 O7 }. ~1 j' ?# V$ AПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.8 k- E( @& O/ d7 s8 c( X
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
% e) s0 a7 K+ ]8 J% i; |9 }5 p3 q3 J& i" s6 j( a" T" }
P.S.
( x: p% W; b5 s8 k! i+ N% PДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
( T6 `0 o8 e3 J+ I
9 n) C6 ?' Z$ n5 h  f1 i6 Q* {- t3 P& I, w2 h" Z7 `
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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