TGViewer
Moth Moth @namlessmoth · 44 subscribers
Post #113 64
Так же на предыдущем видео видно, что я добавил систему переключения между боем и исследованием
В режиме исследования атаки заменяются на взаимодействие с объектами и персонажами
Пока что можно говорить только с ронином, но в будущем добавлю много персонажей и предметов для взаимодействия возможно даже сюжет
Вот такой компонент я добавил ронину:
import makeDialogue from "../objects/dialogue.js"

export default function dialogeComp() {
let player = null
let blob
return {
id: "dialogeComp",
require: ["area"],

add() {
blob = this.add([
sprite("icons", {anim: "comment"}),
anchor("center"),
pos(16, -16),
{
add() {
this.hidden = true
}
}
])

this.onCollide("player", (obj) => {
if (player === null) {
player = obj
this.getPlayer()
}
if (obj.action != obj.actionsList[1]) return
blob.hidden = false
})

this.onCollideEnd("player", () => {
blob.hidden = true
})
},
showDialogue() {
// debug.log("dialogue")
const dialogue = add(makeDialogue())
dialogue.onMousePress(() => {
dialogue.destroy()
})
},
getPlayer() {
player.onStartAction(() => {
if (!blob.hidden)
this.showDialogue()
})
player.onSwitch(() => {
if (player.action == player.actionsList[0]) {
blob.hidden = true
}
else if (player.action == player.actionsList[1]) {
if (this.isColliding(player)) blob.hidden = false
}
})
},
update() {

}
}
}

Хотел сначала добавить его игроку, но это бы просто лишний раз усложнило и увеличило бы его код
А также сделал сам объект диалога в котором хранится рамка, текст и портрет пока это только намётки для теста в будущем буду менять этот код:
export default function makeDialogue(){
const dialogue = make([
sprite("btn_up", {
width: width()/4 - 40,
height: 140,
}),
scale(4),
fixed(),
pos(),
{
add() {
this.pos = center().add(-this.width*2,
height()/2 - this.height*4 - 40)
this.trigger("load")
},
onLoad(f) {
this.on("load", f)
}
}
])

dialogue.add([
sprite("portrait"),
pos(),
anchor("center"),
{
add() {
this.parent.onLoad(() => {
this.pos = vec2(this.parent.width/2,
-this.height/2)
})
}
}
])

dialogue.add([
text("привет это тест нового шрифта", {
width: width() - 160,
font: "font"
}),
color([0,0,0]),
scale(1/4),
pos(5, 5)
])

return dialogue
}
  • ❤ 1
More from @namlessmoth
  1. Mar 7, 2026Как сломать босса одним прокачанным навыком Причём первую заратану я победил точно так же,…
  2. Mar 3, 2026Наиграл уже 150+ часов и даже не прошел половину игры Мне капец как не везёт почти в каждо…
  3. Feb 17, 2026Один месяц подписки на впн Вдруг кому надо https://t.me/gruVPNbot?start=g_UZhunlWNfFC_2127…
  4. Feb 16, 2026оставлю тут, чтобы не потерять вам смотреть нельзя, это только для меня
  5. Feb 13, 2026Вчера сделал всего три задания и все три оказались не правильными 1) Задание: Проведите ре…
  6. Feb 12, 2026Оказалось что всё-таки можно сдавать несколько заданий за один раз. Я вчера сдал 7 заданий…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →