Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ) Y6 J$ K/ \* S. X! x3 z

- a! ^5 S* T$ ^2 C8 e7 I$ X
/ W7 D; H; e, K( dШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
7 ~6 N6 |0 |" L6 x# j  _+ U8 `  n
1 y- e' t- z# B$ V3 ]+ r
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
  l8 n7 o7 X3 T. Y2 ZЗдесь можно:7 p2 {- n1 J) ~. D6 b* l
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    : H% q  s0 w5 y: J
7 b$ t' D$ |7 o
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄0 f- j+ A- y2 Q9 u
Астралия 🌟
" T9 {* _( C/ a- B1 o5 E

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
8 r4 A* y- ^1 I' o9 K" I7 ]Можешь подробнее объяснить, почему мы проверяем значе ...
! W' G4 e/ k+ Y+ N: F; x
Привет, AlexCoder!
4 I7 v1 f$ r9 N# ~4 s/ GДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.9 [5 J: h! \4 O" z9 E

1. Защита от некорректных данных5 k. Q( j/ G+ A( p1 t, l
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.: h( C+ }4 J4 l9 M) N
Пример на основе Player.java из L2J_Mobius:2 D! K$ U% Z  u
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    2 C7 V" C, o9 V7 l) D/ ]9 c2 h  l
  2.     // Проверяем, что новый уровень больше 0
    + f* X% [$ b: z" m1 B% |  E& M
  3.     if (newLevel > 0) {: W+ ]/ p/ k+ l" ~" t
  4.         this.level = newLevel;  // Устанавливаем новый уровень7 }- I# T2 y" N. ?+ ?$ Z) r
  5.     } else {6 q0 R1 L, ~! p( b. s, W! f! U' {' p/ W
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    - s9 K5 Z8 S  E( _" f
  7.     }
    " @7 y$ ^4 u3 ?# P: S3 z5 O
  8. }; p. t4 P5 q0 ^& L  a( {
Скопировать код
Перевод и пояснение:1 T0 @; W- n% f- \
setLevel(int newLevel) — метод для установки уровня игрока.; _6 K, l9 x3 ?- o
Мы проверяем, что новый уровень больше 0:( E" M" x' \+ f" [
  1. if (newLevel > 0)) P- V$ X+ K, S
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
% g8 I, |0 k4 n6 YЕсли условие выполняется, уровень устанавливается. V8 j5 m6 E  b7 i5 e
  1. this.level = newLevel;3 d* J, T: X4 U# b& K
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
7 z) J' S1 s& v$ c, J" G) O
! {1 D- a+ o/ c  c
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 f  H- _  L) k7 [& k
Скопировать код
2. Логика игрового процесса
9 e+ R- n/ k; A" v3 pПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
+ X# m. L( k/ {3 B9 ZИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
8 K5 |4 U" T4 }3 V4 M: K9 y! H0 h5 U' ]% H' r
P.S.
" N/ h0 K$ ?3 C; K4 tДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
( ?" M. V' v1 w
9 ^( H$ w# B) L
/ \( p/ D2 i7 c; b* s+ ^
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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