Pasek życia 10146 23

O temacie

Autor carelion

Zaczęty 6.03.2013 roku

Wyświetleń 10146

Odpowiedzi 23

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Pasek życia
#20 2013-03-09, 18:18(Ostatnia zmiana: 2013-03-09, 18:20)
Funkcja przypisująca obiekt z silnika do instancji wygląda przykładowo tak:
MEM_AssignContentInst (MEM_Game, game);MEM_AssignContentInst to nazwa funkcji. W nawiasach są argumenty oddzielone przecinkiem. Pierwszy argument to identyfikator instancji do której chcesz przypisać obiekt - w twoim przypadku tym identyfikatorem jest HpEdit (które przed chwilą stworzyłeś). Drugi argument to adres obiektu - jak sam wcześniej znalazłeś, znajduje się on w MEM_Game.hpBar, jednak żeby MEM_Game samo było przypisane, musisz wcześniej wywołać MEM_InitGlobalInst.

Tak więc pod tą nową instancją stwórz nową funkcję (nazwa dowolna, argumenty i zwracany typ mogą być puste), czyli przykładowo:

instance HpEdit (oCViewStatusBar);

func void PrzeniesPasek ()
{
MEM_InitGlobalInst();
...

}
I w miejscu kropek dopisz wywołanie tej funkcji która przypisze pasek z silnika do twojej instancji.

Metoda Edkasumo nie tworzy nowej instancji, a jedynie zmienną, ale efekt jest ten sam, różni się tylko użyta funkcja i ilość argumentów.

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!

carelion
RaveN Studio

Pasek życia
#21 2013-03-09, 18:36(Ostatnia zmiana: 2013-03-09, 18:44)
instance HpEdit (oCViewStatusBar);

func void EdycjaHealth ()
{
MEM_InitGlobalInst();
    var int barhp; barhp = MEM_PtrToInst (MEM_GAME.hpBar);
    MEM_AssignContentInst (HpEdit, barhp);
}
Może być?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Pasek życia
#22 2013-03-09, 22:12(Ostatnia zmiana: 2013-03-09, 22:14)
Niepotrzebnie połączyłeś dwie metody. Teraz masz ten pasek i w HpEdit i w barhp, dwa razy. Wystarczy jedna z nich, np jak chcesz go mieć w HpEdit, to wywal linijkę
var int barhp; barhp = MEM_PtrToInst (MEM_GAME.hpBar);
Mam nadzieję że rozumiesz co robi te kilka linijek kodu (nie JAK - tego ja też nie rozumiem i nie spodziewam się żeby ktokolwiek normalny zrozumiał wewnętrzne działanie Ikarusa).

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
Dzięki wszystkim za pomoc :lol:  

Temat do Zamknięcia
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry