Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
" o! t' m2 X6 L2 U$ c
; H4 B8 y  c- L9 [
1 B* a! ~' R! }. I) o( A- AШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius" f  v8 f5 I8 A7 m# N/ r

; G- a, p4 n. x$ u8 F3 w5 L/ U0 h. U$ x0 R
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
7 c8 Q& F2 n3 ]% U! FЗдесь можно:6 B9 r. i( x( k- q0 B4 A: N2 f
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.4 z' {: ?  u2 `0 m; y* D
' z# A3 ?+ J! q$ ?" T. Y& p
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
$ Z9 Q3 S2 R9 u3 F, y, D) wАстралия ?
7 L# E, X1 U0 z3 I6 C

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
0 P: o4 L+ [; C; ~( tМожешь подробнее объяснить, почему мы проверяем значе ...

, f; M5 l1 M* c/ D7 M$ aПривет, AlexCoder!
! l4 z4 S& \% nДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
3 ~* l. R! a- Z: d# O1 q4 S
1. Защита от некорректных данных
7 G% F* q3 Y+ _Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
3 y" i  D! l8 d/ ~. ^Пример на основе Player.java из L2J_Mobius:
5 A  T" a3 M. i3 y7 G
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    ! E, ^8 R  e3 \, W5 [
  2.     // Проверяем, что новый уровень больше 0
    0 h( f1 [6 \, {* \1 O
  3.     if (newLevel > 0) {
    2 v+ z, L. c. p
  4.         this.level = newLevel;  // Устанавливаем новый уровень; e5 h0 w2 o( O9 Z: A3 N
  5.     } else {) w* S& d, [. D9 z4 T. R
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");. s, U. i6 J& X
  7.     }
    ! {/ K  [- G1 o, s
  8. }  n" y. J0 L- Z1 Y: `
Скопировать код
Перевод и пояснение:% i8 u0 Z: H3 v5 C/ w
setLevel(int newLevel) — метод для установки уровня игрока.1 A: B1 s* N  l) T2 ?) N1 K
Мы проверяем, что новый уровень больше 0:
$ b5 \4 U# B* u- N
  1. if (newLevel > 0)  V+ v/ S7 C! T. ^+ `9 W
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
* [5 n% w& B( M8 a" y- LЕсли условие выполняется, уровень устанавливается; o5 y0 W+ A7 [  d. X( V
  1. this.level = newLevel;" _9 |8 y. ?8 q7 z3 Y5 h; T# J
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:& h7 _9 I2 _+ o4 b- O

3 ?; s" v( K# G2 L
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    ) C* c4 H2 R1 u- I: u: Y
Скопировать код
2. Логика игрового процесса& s% G, v3 Y7 ?) q2 u4 O- P
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
0 j6 Y" F- d5 @/ h/ z, [Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
+ ]. G8 F8 b- ~; y; Y+ c( Y
% H: c% J1 `3 i( o4 ~; _: l$ SP.S.: f4 @4 h5 D9 j) ]" q$ h% |& c! l9 A! T: D
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?# y( j$ N9 U( |: N5 t

- x* B( b* g# s9 ~6 l; }
5 g8 P+ E) P; l+ h" l4 Y- e
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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