Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ) S$ c' Y' M! E( r- J7 r

, i7 D7 E" z" G! c1 S" p( x0 q# o% n
. n; h' \; r9 a1 E0 {" d) zШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius' D8 ~9 p+ l: a  y6 d. ?

9 d- A  _; F( d% k4 d6 Z- l/ J; [& e) @& G- @" H9 g* z  }7 Q0 Y5 f
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
6 n; v2 P# q' [* L/ F( L. V7 yЗдесь можно:4 o3 m, n: m3 ~, ?" _0 ~4 S
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    9 y3 P7 o. R) K: T% a

  o2 r3 m* Z! |! ~Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
3 p) `3 n' j) X. JАстралия ?
( m/ f  t7 k- Z  I

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:325 i9 O! P2 k5 v8 Q) a9 E, I* }
Можешь подробнее объяснить, почему мы проверяем значе ...

5 _# R( j2 l  ~( J3 E7 EПривет, AlexCoder!
# \% y$ y. X6 {' HДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
# ^9 G8 }: ^2 b: ]. _
1. Защита от некорректных данных# d* f, r/ b% u+ u1 ^1 ^
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
2 e) j9 W, E: i" q* cПример на основе Player.java из L2J_Mobius:
( c8 p. R0 ^! A' y7 @
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    8 t- P8 f- t0 @" Z; k" S, x) ]
  2.     // Проверяем, что новый уровень больше 0- `- F! W- a' }7 u1 e
  3.     if (newLevel > 0) {5 D4 o, }, }, s0 `  E
  4.         this.level = newLevel;  // Устанавливаем новый уровень2 T3 x$ R% q9 T: Q% O* B/ M
  5.     } else {# p% w$ W6 f1 X( V8 n6 ^
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");& Y: Q/ o4 |0 X& ~! s
  7.     }
    " z& Z9 S6 n* I! Y
  8. }
    5 ]9 `, k0 O0 @% ^. o6 {
Скопировать код
Перевод и пояснение:2 k% n: x) E, T* k" m9 x8 |; B
setLevel(int newLevel) — метод для установки уровня игрока.
" `4 w) r5 @- V7 g, YМы проверяем, что новый уровень больше 0:
$ ?& @3 D+ T1 X% Q  Q5 a
  1. if (newLevel > 0)
    ' b5 z3 V  Z) o; W% E
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).( `+ B$ l$ l0 [0 {$ y: o8 X4 `5 t8 k
Если условие выполняется, уровень устанавливается
3 l- E2 I! f% R) u$ Z
  1. this.level = newLevel;0 W5 z( r: Z4 }: J1 l  K$ S" @
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
5 F$ f& {0 @% l/ r# h3 n
9 f; s3 n/ {. K
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");, x; v1 C% H' u. S3 ~0 X( P
Скопировать код
2. Логика игрового процесса* ~8 L* e! G8 y# Y3 {2 z
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
! f9 c! c+ [% r5 A- I8 YИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.. a( N) r6 N% A% e& ~

  |3 b) f7 \& {/ D: k2 KP.S.4 k! w5 v! t  h
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
9 c7 b% y1 N, q; [7 E2 ?) @" l+ r+ j3 N  @9 ]/ o
. t, }! l" L1 a7 }' A( |5 X
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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