Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest WME version: WME 1.9.1 (January 1st, 2010) - download

Author Topic: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní? "VY  (Read 5131 times)

0 Members and 1 Guest are viewing this topic.

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile

Ahoj, chtěl bych se zeptat, jestli se dá v 2D adventuře přiřadit sprite, který by sdílel pohyb s postavou.
Můj úkol: Postava bude mít "někdy" čepici a někdy ne, dalo by se tu čepici přiřadit k postavě tak, abych nemusel měnit celou postavu? V 3D demu jsem koukal na tu konvici kterou trinity zvedne, ale tam kam mě navedla cesta scriptu, "teapot_taken.X sem otevřel v bloku a tam bylo fura nevyužitelných "čísel". Mám představu, že na scenu kde čepice bude umístím sprite kterému přiřadím script, ve kterém bude, aby sdílel pozici actora + X, + Y s nějakýha hodnotama abych mu jí dostal na hlavu. Ale nemám představu jak bych to měl napsat?

EDIT:
Udělal jsem si prototyp, na scenu jsem si zatím dal knihu, dal jsem ji do popředí a jen tak jsem jí někam šoupnul a zakazal interactivitu. Přiřadil sjem jí script:
Code: [Select]
#include "scripts\base.inc"


this.X = actor.X;
this.Y = actor.Y - 200;

Už mi to teda funguje, až na jeden podstatný problem, kniha se tam sice objevý u actora a tam kde jí chci, ale je tu jedna věc kterou potřebuju a tou je Looping, jak to uzamknout do smyčky aby to probíhalo furt?
« Last Edit: August 05, 2009, 11:12:29 PM by pirko7 »
Logged

dream

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 32
    • View Profile

Quote
Už mi to teda funguje, až na jeden podstatný problem, kniha se tam sice objevý u actora a tam kde jí chci, ale je tu jedna věc kterou potřebuju a tou je Looping, jak to uzamknout do smyčky aby to probíhalo furt?

V tom skripte, ktorý je priradený pre knihu, stačí napísať tento zdrojový kód:

Code: [Select]
#include "scripts\base.inc"

while(Actor.Active)
{
   this.X = actor.X;
   this.Y = actor.Y;
   Sleep(NejakyCas);
}

Akonáhle sa spustí tento skript, cyklus bude bežať vo vlákne procesora donekonečna.

Ďalším riešením je toto:
Quote
One animation frame is not limited to a single image. You can compose one frame of multiple images (they are then called the "subframes"). You don't usually need to use subframes, but they can be useful sometimes. For example let's assume you have an animation of a walking man. Now you want the man to wear a hat. Instead of redrawing all the animation frames, you can draw just the hat and add it as a subframe to all the animation frames. Of course this is not a good example, but you may find a more creative use for the subframes.

V preklade to znamená toto:
Jeden snímok animácie nie je obmedzený na jednoduchý obrázok. Jeden snímok animácie môže byť poskladaný z viacerých obrázkov (potom sú nazývané "podsnímky"). Často ich nepotrebujete používať, ale niekedy môžu byť užitočné. Napríklad, predstavme si že máme animáciu kráčajúceho muža. Teraz chcete aby muž nosil klobúk. Namiesto prekreslenia všetkých snímkov animácie stačí len snímok toho klobúku a pridať ho ako subsnímok pre všetky snímky animácie. Samozrejme že toto nie je dobrý príklad, ale určite si nájdete viac kreativity pri používaný subsnímkov.

Ak by si chcel mať postavu, kedy bude mať klobúk a postavu, kedy bude bez klobúku, doporučoval by som vytvoriť si dvoch samostatných actorov a do game.script napísať:

Code: [Select]
// load the first actor
global Actor     = Game.LoadActor(path_to_your_actor);
Code: [Select]
// load actor with the hat
global ActorHat = Game.LoadActor(path_to_your_actor);

Potom si už len stačí v každom scene_init.script zavolať postavu, ktorú chcem.

Napríklad:

// Scéna vo vnútri
Code: [Select]
Actor.Active = true; // zobrazí sa postave bez klobúku
// Scéna vonku
Code: [Select]
ActorHat.Active = true;
Pozn.: Používanie subframes nemám odskúšané ;).
« Last Edit: July 30, 2009, 07:15:06 PM by Fox.It »
Logged

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #2 on: August 01, 2009, 01:30:00 PM »

Jojo, na while už jsem taky pak přišel, ale prostě se mi ta čepice vrtí na tý hlavě, když jde postava z leva doprava, takže to teda budu řešit přes dvě postavy. Díky moc :-) ::thumbup
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #3 on: August 01, 2009, 09:57:30 PM »

actor.AddAttachment je to co potrebujes.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #4 on: August 02, 2009, 12:23:25 PM »

Zkoušel jsem si s tím hrát, ale nepřišel jsem na to jak to přesně použít, mám par mezer v tom skládání toho scriptu. Nemohl bych poprosit o nějaký příklad? Tenhle řádek teda vložím do scene_init, a na scene.edit nemusím nic umístovat? Zkoušel jsem to ale chyba v syntaxu, něco dělám špatně, jako obvykle.  :-X
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #5 on: August 02, 2009, 12:26:39 PM »

actor.AddAttachment("cesta\cepice.entity", false, 123, 123);
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #6 on: August 04, 2009, 10:07:52 AM »

Děkuju. Muj problem byl že jsem tam strkal sprite, jde to teda jenom na entitu, za to se omlouvám  :-X. Ale je to uplně to same jako přes while, když postava náhle změní směr z leva doprava tak se entita na hlavě hne. Pošlu odkaz na vyzkoušení. Je to vlastně dané nejspíš tím jak ve spritu postava mění pozice.  :)

http://www.edisk.cz/stahni/20553/actorsespritem.zip_1.13MB.html

Šlo by to teda udělat ještě jinak, nebo dvě postavy?
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #7 on: August 04, 2009, 03:45:42 PM »

Pokud potrebujes, aby se pozice toho attachmentu menila pro ruzne smery, tak ti asi fakt nezbyde nez mit dve definice postavy. Ten attachment byl puvodne minen treba pro stin, ktery je porad na stejnem miste, relativne k pozici postavy.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

pirko7

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 166
    • View Profile
Re: Dá se k postavě přiřadit "nějaký" sprite aby se pohyboval s ní?
« Reply #8 on: August 05, 2009, 11:08:58 PM »

Tak aspo
Logged
 

Page created in 0.042 seconds with 24 queries.