Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ) D1 t1 o2 S% F3 m. i/ h
6 m/ v2 \: B: {2 Z5 K
2 n: \- W) H) m- c1 ~" f  C
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
) m0 L2 i+ z$ H0 e# g
& f' ], i7 e; |' e& |0 X( V7 s: O, ?, @: y
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
. W. Y2 \2 m5 l2 Z0 F/ z3 KЗдесь можно:9 o0 ]8 _% F( j7 w# c: P7 {
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.0 Q' C7 R5 _4 _! q1 S
5 h8 k$ p9 P; {! D9 Z
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?9 k- j5 G. D, Z4 y: P. {0 o7 }
Астралия ?
# i& L$ x! ?' }0 g/ @

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:321 r1 q+ c* ^- D' O7 I1 I
Можешь подробнее объяснить, почему мы проверяем значе ...

+ R& V/ A4 |) a. e! i" O* Y/ sПривет, AlexCoder!
1 r% T: ]. B; c+ UДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
6 k' y% l6 v* c: F$ a% {$ F
1. Защита от некорректных данных8 l( w, c4 K0 o( B# l5 W
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока., c' g. y/ Z5 @
Пример на основе Player.java из L2J_Mobius:
5 e7 ?- O4 P9 k, e. n0 E8 Y
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)# T2 d; h4 T. }' T" R
  2.     // Проверяем, что новый уровень больше 0+ f4 @  M7 Z/ a/ k) Y6 g% t5 I
  3.     if (newLevel > 0) {) |, V1 X4 I# b/ L3 ]
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    - t; E2 A  i; k" f2 C, E
  5.     } else {: ?( l0 E- |) y# T' ]0 ?3 c6 H
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    " }$ m) K9 A% }0 h% X' T
  7.     }
    ' a  \3 v" e; K0 I5 T. E
  8. }( A4 `3 t) U, y' |& x6 V  {2 {
Скопировать код
Перевод и пояснение:$ y2 S8 h2 f; F/ G+ `5 t# E7 I
setLevel(int newLevel) — метод для установки уровня игрока.' D& M: m9 ]( ~! q) e% p$ @
Мы проверяем, что новый уровень больше 0:
9 h9 A4 g( \5 u! [2 \
  1. if (newLevel > 0)
    2 k) N, Z6 F2 _" u
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
5 v3 U& {9 ^/ F8 p% RЕсли условие выполняется, уровень устанавливается; }+ U" h$ A, w2 d1 O/ Q
  1. this.level = newLevel;
    0 R7 o% O7 p& g: A6 K
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
. P% H. b% f, ~
$ m/ h6 D% C  m/ p
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");- I$ w* n' n) `& }( A
Скопировать код
2. Логика игрового процесса
( x( p" O9 L$ g5 k! ~Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
, V; Y& e4 c$ G% j! tИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.9 f  X2 T! {  z7 ^
5 I7 s; Z* Y7 F
P.S.
7 F+ s/ C- Q1 k# ^% TДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?: Y( B# L- ^. K+ R
' S5 m6 a) {9 H4 V2 b% U8 I
; u) _0 o  G6 s
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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