Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34   R' e" }. u% j3 T% q9 m
" F! M' F$ J' {( [  @. f+ ~- ?5 Z
& K2 |4 ]& m7 J7 ~" }
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
/ m8 s- j( G: G3 A! _* G4 s
. a  @& ?1 ]+ f% Y5 D% p, i; O
3 }% P7 d+ e; @5 c3 D0 B- g# a0 yДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.3 x6 ]$ \2 [/ E' J* v3 L( ]
Здесь можно:( [& y$ s: {- J
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.; d# I' q/ Z- @

$ I7 E+ ]+ K+ J4 h# |Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄" q) p6 ]8 k& Q: v
Астралия 🌟
! ^2 a# ?) p6 A( Z$ G0 X: G! J. w; z

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
  A2 e" A2 ]4 g7 BМожешь подробнее объяснить, почему мы проверяем значе ...
1 S& J" }, v. b( T* b" D
Привет, AlexCoder!
/ X( w' Z7 h" B8 g2 ^% X- W+ uДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
" _9 r# ~- `; p! v) w3 v
1. Защита от некорректных данных
/ |! i+ ?) ?& F: j1 o4 a% \Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
; {) ?4 I- ^5 k: k6 dПример на основе Player.java из L2J_Mobius:( w1 Y  _' c* X/ ?5 p4 Y  K% T
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    6 j+ N5 o. W' \" O6 w1 B
  2.     // Проверяем, что новый уровень больше 0
    * s2 [8 J$ Q5 _! ]
  3.     if (newLevel > 0) {
    $ s+ b4 f6 z. M: Y* c( b
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    & r: c8 {8 K5 c' u' B
  5.     } else {
    # f3 \6 D4 t, F5 ]. `, M8 ^3 ^
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    / g( N( ~6 f- P3 S% \! k8 W
  7.     }
    9 r3 b1 c7 v' I3 `7 L
  8. }
    + D. E7 _  ?7 t9 ]9 }' e
Скопировать код
Перевод и пояснение:6 ]" w, W3 g" P- a! ~. u( d# g: R
setLevel(int newLevel) — метод для установки уровня игрока.7 j6 y( b4 }5 M' E- e, ^
Мы проверяем, что новый уровень больше 0:
+ C% F# W1 m0 P# t" F
  1. if (newLevel > 0); c& p1 z! P1 Q
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).5 b% \7 b2 ]( h4 z2 H! I& T8 N! M
Если условие выполняется, уровень устанавливается8 Z% E% A% ~* T6 `
  1. this.level = newLevel;# {5 n* l; u9 O* q! R- I& g1 h9 W
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:9 l; |( E) p; [9 Y6 ]& `- M8 ~  [2 Z4 R

% d9 k0 `& I/ {5 f! O- i# H" t
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    / n. U/ j0 \8 L7 l6 J
Скопировать код
2. Логика игрового процесса7 d2 a; [6 n* D6 D' f$ w
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
, V7 E, L# V7 BИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
, z1 N% j! Y* H1 ]7 Q: n
% X: F) T$ Y& r+ G* v+ LP.S.+ Y% s+ }+ `% |) T1 e  X1 Q3 s
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
9 e$ o+ _0 d' x& R* [+ h
% n! U3 z- b# V4 h5 N' f7 K- ~9 z6 f% _" y
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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