Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 $ O: L- {6 g1 \/ }" N; W
: f+ ^& e% S4 _% g8 o7 C% o

2 a! O5 ^3 ~3 o. Y1 ]+ y" C/ x! [+ iШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius$ V. S5 m4 v9 X( F, H
4 b' h: s, U# g- t1 M; X

+ ~, a& V8 ]3 nДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC." g! {6 D% Q2 h+ Y, @# B. m% j
Здесь можно:/ Z  V+ L6 f* n& d4 g" ]
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.* R' T- T4 Q$ s5 Z9 k
  _$ K4 r0 _' C, w( w  y
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
( v# X) Q; u* j/ ~3 V# O+ gАстралия ?$ `: a% [# V9 a% V4 j* y

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
% A. u* U$ ^, N% IМожешь подробнее объяснить, почему мы проверяем значе ...

) D4 [9 {+ v! v- d- }) [Привет, AlexCoder!% `8 J2 J& a( T4 S( o! F
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
: `; k0 N, h( x) X- x2 z0 e
1. Защита от некорректных данных$ E" F- |% c4 s
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.- a- \( F9 G  W2 Q) t. r
Пример на основе Player.java из L2J_Mobius:
/ j, f! ~4 _  @7 G! q3 {+ j
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    + G; C2 W, N! `! j. N, `
  2.     // Проверяем, что новый уровень больше 0+ I4 Z+ E6 V; d, ]
  3.     if (newLevel > 0) {
    ; ~6 Q; s" j! y9 Y
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    # E7 N( f- Q! X7 r2 `2 d; E  S4 a; A
  5.     } else {
    2 S9 t) M( A& Q. [; t
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ( {3 b/ \4 q! Q1 W
  7.     }% d3 ^9 v' d, m4 `
  8. }3 z, D+ X, V( M7 B+ e
Скопировать код
Перевод и пояснение:5 E2 y3 V3 n# n' w2 w# I
setLevel(int newLevel) — метод для установки уровня игрока.( B% A1 ~1 Z7 c; }8 s7 }! C- w
Мы проверяем, что новый уровень больше 0:
# b! E, L" v+ N, _) L: [# F
  1. if (newLevel > 0)& Y: K4 @5 ?5 ?/ ^- A3 p, y# X
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).7 k4 A8 f( S  U- V/ m" d
Если условие выполняется, уровень устанавливается
; C! m) d0 V/ f7 Y
  1. this.level = newLevel;' N# T* O7 [9 s; G' O" H+ U
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
2 g. A3 Y' D6 X% D6 n6 C' [/ ^+ P1 Q# j  k+ b, r  ~
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");# B  H7 c& W6 H! V% z
Скопировать код
2. Логика игрового процесса/ J% _( y  N% s! n
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
7 x1 M( ?. L* P8 zИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.  R- s3 W+ s' q. s/ v, `7 w( r

8 T: A% E& m, X3 QP.S.2 M0 h: x) f! `: s2 n( o
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
: X8 h* C$ e$ W4 G, p+ ]
# a- F" A* q# K6 V9 r" \3 Z
2 o! }0 [8 K8 M
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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