This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос DrawRect хп и армор бар

dreamharakiri

Новый участник
25 Дек 2021
75
1
49
Как расположить один бар над другим? У меня они сейчас стоят на одном уровне друг с другом.
Код:
                let x2 = x - width / 2 - border / 2;
                graphics.drawRect(x2, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);
                graphics.drawRect(x2, y2, width, height, 41, 66, 78, 255);
                graphics.drawRect(x2 - width / 2 * (1 - armour), y2, width * armour, height, 48, 108, 135, 200);

                x2 = x + width / 2 + border / 2;

                graphics.drawRect(x2, y2, width + border * 2, 0.0085, 0, 0, 0, 200);
                graphics.drawRect(x2, y2, width, height, 150, 150, 150, 255);
                graphics.drawRect(x2 - width / 2 * (1 - health), y2, width * health, height, 173, 0, 0, 200);
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,581
211
28
Я: Тамара Викторовна, ну не пригодится мне ваша математика в жизни!
Так же я:
 
Реакции: Inoi и UchihaMadara

mippoosedev

Гуру
BackEnd developer
2 Мар 2021
292
127
100
Данные методы рисуют по координатам экрана. Соответственно, тебе нужно чтоб Y(высота) была разная, а X(ширина) была одна. У тебя есть точки:
x - центр неймтега по ширине
y - центр неймтега по высоте

Так же ты сам(ну точнее там, где ты взял код) находишь новые X для этих баров, тебе нужно находить Y.
Могу дать вот такой код
JavaScript:
if (armor > 0) {           
                 //   mp.game.graphics.drawRect(x, y2, width + border * 2, height + border * 2, 0, 0, 0, 200); // обводка
                    mp.game.graphics.drawRect(x, y2, width, height, 41, 66, 78, 255);
                    mp.game.graphics.drawRect(x - width / 2 * (1 - armor), y2, width * armor, height, 48, 108, 135, 200);

                    y2 -= 0.007;

                   // mp.game.graphics.drawRect(x, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);  // обводка
                    mp.game.graphics.drawRect(x, y2, width, height, 150, 150, 150, 255);  // отнятое хп
                    mp.game.graphics.drawRect(x - width / 2 * (1 - health), y2, width * health, height, colors[0], colors[1], colors[2], 200); // фулл хп         
                } else {
                   // mp.game.graphics.drawRect(x, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);
                    mp.game.graphics.drawRect(x, y2, width, height, 150, 150, 150, 255);
                    mp.game.graphics.drawRect(x - width / 2 * (1 - health), y2, width * health, height, colors[0], colors[1], colors[2], 200);
                }
Но всё же советую разобраться в вопросе самому