Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
6 P# v7 ?: p$ _4 p7 y" E; V8 Q7 ~+ P1 K+ f* R& |# H

! @5 ?  q! D" R$ X# sШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius/ V; E' b& Z# Z, _

8 U* t0 f4 N: Y" r# S% g9 m/ |' z- a  m
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.$ R( f7 e8 Z9 R, M4 x- w, e8 i
Здесь можно:& }/ W0 h4 S% ^' ^
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.$ G5 O7 I; x/ |, ~, H" R7 j# u

! L' v5 }# f8 |$ H' a& h  ~% SНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
! A9 K6 l$ G$ g. L+ y4 ^2 H9 F9 mАстралия ?
1 Q( U) d6 K, x6 D' `; P

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
6 y  W' u8 R) {Можешь подробнее объяснить, почему мы проверяем значе ...

8 f* {' E- }8 @3 oПривет, AlexCoder!+ j, \1 D$ [% {  s' s' B
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.2 D; j" Q! D3 B. R4 k) q% `( o) R

1. Защита от некорректных данных& r3 k5 Y7 R& \( [) o
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
- F6 j9 B  u# @; ~$ U' ZПример на основе Player.java из L2J_Mobius:
( ~. @0 w" R" F! y
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)4 V' [! ]2 r% z9 L+ B1 [/ C" I
  2.     // Проверяем, что новый уровень больше 0- {5 |( p6 p% e2 D% a
  3.     if (newLevel > 0) {
    ' ^- {( o3 e7 U. j1 H6 }
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    2 a) c3 r6 Q8 F
  5.     } else {
    ( e4 u) Z1 {. f' m
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 ?, ^  p* |3 }/ S8 J- ]2 k/ z- h
  7.     }% p; J9 E4 t  G+ G+ j9 n9 A
  8. }, ^2 \, }- p1 P9 }5 S' N
Скопировать код
Перевод и пояснение:% J! l# L4 \8 j. A- L" D. V2 ]
setLevel(int newLevel) — метод для установки уровня игрока.
. [- |* j) h5 q5 EМы проверяем, что новый уровень больше 0:
$ q# L: g/ `& ?
  1. if (newLevel > 0)
    : h3 ?: Q4 x1 t% f8 @
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
# n0 m3 t( b8 W- b) K, C$ VЕсли условие выполняется, уровень устанавливается
3 m5 b5 z; X* ^9 Z  w" j- w9 P" O( v
  1. this.level = newLevel;
    9 l6 w7 S7 Z8 y: Q8 Z! n7 s3 g
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
6 _" n& }2 k) L; {% \3 ~. P
" c1 M2 L/ l" [- `9 K
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    + B0 y2 U8 p, \& ?  S, B9 J
Скопировать код
2. Логика игрового процесса
! ^/ b: K; V/ K2 RПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре., A/ L9 K3 ]* c
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.6 [* ?- }6 I7 o. o, z6 a# Z, V

) C! n) v  ?% D% W' ~7 f8 R2 BP.S.
0 r3 |+ z1 x$ P4 F& ^# yДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
9 L6 W; f- t: }* l  U4 i- m$ h9 ~  T3 H
0 K2 K9 ?! I, k7 [4 Z  p
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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