Please login or register.

Login with username, password and session length
Advanced search  

News:

IRC channel - server: waelisch.de  channel: #wme (read more)

Author Topic: Běhání actora  (Read 5737 times)

0 Members and 1 Guest are viewing this topic.

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Běhání actora
« on: May 15, 2010, 02:13:08 PM »

Ahoj, chtěl bych se zeptat jestli jde naprogramovat jednoduše běhání actora při dvojkliku a jak? Jedná se o 2D adventuru. Slovem jednoduše myslím to, že nebudu muset psát do každého scriptu předmětu na sceně, nějakou podmínku. Je to možné naprogramovat to a mít od toho klid?  :)
Logged

metamorphium

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 12
  • Offline Offline
  • Gender: Male
  • Posts: 1511
  • Vampires!
    • View Profile
    • CBE  software s.r.o.
Re: Běhání actora
« Reply #1 on: May 15, 2010, 03:37:59 PM »

ano. Stačí změnit scene.script, který je v data\scripts\scene.script

Když jsem to tehdy dělal, pamatuju si, že jsem u "LeftClick" musel vložit čekání, aby se mi nemotal dohromady LeftClick a LeftDoubleClick. Teprve pokud se do určité doby nezavolal LeftDoubleClick, zavolala se klasická chůze.
Logged
J.U.L.I.A. Enhanced Edition, Vampires!, J.U.L.I.A., J.U.L.I.A. Untold, Ghost in the Sheet

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Běhání actora
« Reply #2 on: May 15, 2010, 07:51:20 PM »

A fungovalo to i na jednotlivé přeměty nebo pouze na floor? Mohl bych poprosit o podrobnější vysvětlení? Mě napadlo přidat další animaci do *.actor. Pojmenovat třeba run.
A pak do scene.script ve šložce GAME, přidat "tohle":


on "LeftDoubleClick"
{
  actor.RunTo(Scene.MouseX, Scene.MouseY);
}

Ovšem tohle by asi fungovalo jenom u 3d projektu a pouze na floor.  :(
Logged

Andrej (Blue Arc)

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Gender: Male
  • Posts: 73
    • View Profile
Re: Běhání actora
« Reply #3 on: May 16, 2010, 02:19:48 PM »

Ano, funguje to aj na jednotlivé predmety, nakoľko aj v prípade metódy RunTo() voláš metódu GoTo(), ktorú engine využíva ako pathfinding medzi hot-spotom actora a súradnicami kurzoru na mieste, kde si klikol.

Napadla Ťa dobrá myšlienka, ako to vyriešiť. Kedže riešiš 2D, potrebuješ si vytvoriť samostatnú animáciu behu. Odporúčam nemiešať to pôvodnej postavy, ale vytvoriť si novú postavu, napríklad kulivocko_beh.actor  :)

V game.script by som načítal do pamäti túto novú postavu, napr.:

global kulivocko_beh = Game.LoadActor("actors\kulivocko_beh\kulivocko_beh.actor");

Potom už len upravíš scene.script tak, aby reagoval na na LeftDoubleClick, napríklad

on "LeftDoubleClick"
{
  kulivocko_beh.GoTo(Scene.MouseX, Scene.MouseY);
}
Logged

Andrej (Blue Arc)

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Gender: Male
  • Posts: 73
    • View Profile
Re: Běhání actora
« Reply #4 on: May 17, 2010, 09:19:13 AM »

Potom ešte nezabudni, že si to musíš ošetriť tak, aby sa Ti to nemiešalo dokopy.
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Běhání actora
« Reply #5 on: May 17, 2010, 09:42:08 AM »

Odporúčam nemiešať to pôvodnej postavy, ale vytvoriť si novú postavu, napríklad kulivocko_beh.actor  :)
Proč to? Já myslím, že je jednodušší mít všechno pěkně pohromadě, než řešit nějakého falešného druhého actora.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

Andrej (Blue Arc)

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Gender: Male
  • Posts: 73
    • View Profile
Re: Běhání actora
« Reply #6 on: May 17, 2010, 11:36:35 AM »

Odporúčam nemiešať to pôvodnej postavy, ale vytvoriť si novú postavu, napríklad kulivocko_beh.actor  :)
Proč to? Já myslím, že je jednodušší mít všechno pěkně pohromadě, než řešit nějakého falešného druhého actora.

Beriem späť. Teraz som nazrel do dokumentácie, kde som si prečítal toto:

Or you can create custom versions of the standard animations (for example a "run" animation to replace "walk") and switch them at runtime using the actor.TalkAnimName, actor.IdleAnimName, actor.WalkAnimName, actor.TurnLeftAnimName and actor.TurnRightAnimName properties.


Prepáč Pirko, nebolo mojím zámerom zle poradiť, ale už som s 2D dosť dlho nerobil, preto ma nenapadlo, že toto WME podporuje :).
Logged

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Běhání actora
« Reply #7 on: May 17, 2010, 06:17:21 PM »

V pořádku  ;) děkuju za každou radu, kdyť nejsme stroje aby jsme vše věděli s přesností. Já bych ale chtěl metodu bez používání dvou aktorů. Ve 3D jsem zkoušel pomocí jednoho open source projektu nastavit běhání. Duble click do scene.scriptu. Ale stalo se to čeho se tu obávám, scena má sice nastavený na duble klik běhání. Ovšem dvojklik na předmět nereaguje a postava neběhá. A moc si neplánuju že bych to na každý objekt psal pro duble click.   0:)
Jak to teda udělat v 2D projektu bez toho abych musel nastavovat každou entitu?
Logged
 

Page created in 0.042 seconds with 19 queries.