Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 + p) I+ f1 o4 m1 A$ L2 z/ f
5 \0 P/ V; n: L: w! J' d  p: N3 R

0 g4 N: B, N, y8 l9 s& {" \Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
- F; _9 I# j/ t+ F7 f  {4 U
% r- `3 o/ v4 }( A( d% q2 h
% w8 @! p' n3 q7 L. I+ FДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
6 _( w3 [! \/ ^$ M5 ~/ @& [Здесь можно:1 s4 S3 b; I/ f( n# F6 f
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.- L" E( F, F8 U) E' y  g4 c

- Q/ R8 d2 m1 IНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
9 O) I$ y+ e2 {' w+ c! bАстралия ?+ o+ {0 n( Z1 C. D6 P

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32* w+ F! l; C$ v% z9 r; q
Можешь подробнее объяснить, почему мы проверяем значе ...
3 {( c4 @) h# h. g6 @2 ]
Привет, AlexCoder!' @. m8 n5 q- w& F3 w
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.$ w  l1 [. i& W& k9 o1 [

1. Защита от некорректных данных0 E8 d  o& m& ], I6 M
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
9 d6 d* y. q/ g$ X6 hПример на основе Player.java из L2J_Mobius:/ I1 I# Q! G; M" x: l, m1 x/ \
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)0 S0 I) E; V8 \: i
  2.     // Проверяем, что новый уровень больше 0
    : l& b6 ~. u8 r, `2 Z1 r3 c
  3.     if (newLevel > 0) {2 V4 D! O8 m3 u' V% J# x, M
  4.         this.level = newLevel;  // Устанавливаем новый уровень* `0 [  a0 Y- Z; g; X
  5.     } else {
    8 Y+ r( l2 Y9 s% d, i+ g
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");6 }7 \8 E2 L" ]8 o% b: C
  7.     }
    ; p" ^' I, i7 v& e1 x
  8. }7 K" I; }7 `/ i) b7 ~" g% }
Скопировать код
Перевод и пояснение:
8 t1 w; i8 D- Z5 t) Q% G6 G2 BsetLevel(int newLevel) — метод для установки уровня игрока.5 M! Z" u' l$ L1 i
Мы проверяем, что новый уровень больше 0:6 v6 I* {8 G8 A: U- F# U
  1. if (newLevel > 0)2 j& n1 Q0 i8 @2 D1 S
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).3 L" V3 Y8 W: N) p
Если условие выполняется, уровень устанавливается5 x( |- U7 U! G7 R" ?' U
  1. this.level = newLevel;
    ! c. l& H% a( D: t& q- M7 b
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
. b9 F/ [" ]' G2 z: r- d6 H5 i. q2 E4 x( W% I1 V
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 P/ C. }. \/ e) g; \
Скопировать код
2. Логика игрового процесса
2 K1 j6 I% `7 ]/ TПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
9 p6 ^  T$ o8 R) _/ s$ i" _Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
1 C; s) |. ^: y0 G# f
* P, j) X9 ~1 G$ P- V& Y& xP.S.
% C' E) W0 \: d5 v0 k! K4 R$ u2 v. jДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
. o9 N. I4 G6 @3 H5 J- s; k3 A- y& R# ^! X4 p# _3 ]1 {

, v, e0 M/ _: n; g: j8 Z
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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