←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Łączenie bytów

Zablokowany

  • +
  • -
Dmk880 - zdjęcie Dmk880 20.07.2011

Witam, otóż chciałem się zapytać jak połączyć ze sobą 2 byty?

Powiedzmy, że gdy stworzę 2 byty(takie same), to aby one przylegały do siebie, a nie wchodziły w siebie.

Na razie korzystam z tego kodu:

new origin[3],Float:fOrigin[3],ent;
ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"));
set_pev(ent,pev_classname,"Model");
get_user_origin(id, origin, 3);
IVecFVec(origin,fOrigin);
set_pev(ent,pev_origin,fOrigin);
set_pev(ent, pev_solid, 2);
engfunc(EngFunc_SetModel, ent, MODEL);
engfunc(EngFunc_SetSize, ent, Float:{-4.0, -4.0, -4.0}, Float:{4.0, 4.0, 4.0});


Proszę was o pomoc.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 20.07.2011

hmm masz podane maxs i mins oraz współrzędne pozostaje ci tylko obliczyć współrzędne drugiego bytu czyli odpowiednie uzycie danych o ktorych napisalem :D
Odpowiedz

  • +
  • -
Dmk880 - zdjęcie Dmk880 21.07.2011

A mógłbyś mi to jakoś jaśniej wytłumaczyć?

Bo z tego co mi napisałeś to wnioskuję tylko, że będzie tu dużo if`ów
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 21.07.2011

Najgorzej jak za programowanie biorą się ludzie bez znajomości matematyki. Kiedyś pytania o procenty, teraz co zrobić żeby figury były obok siebie...

jeśli kwardat ma bok 10 to kładąc jeden z nich w punkcie (0, 0) drugi trzeba umieścić w:

(10, 0) jeśli ma go dotknąć z prawej strony
(-10, 0) jeśli ma go dotknąć z lewej strony
(0, 10) jeśli ma go dotknąć z góry
(0, -10) jeśli ma go dotknąć z dołu

w trójwymiarze dochodzi przód/tył


Jak to wygląda w Pawnie?

położenie ent1 to będzie 0, 0; różnica maxs - mins o której mówi G[o]Q daje nam wymiary bytu (to 10), i teraz zależnie gdzie mają się stykać tam dodaj/odejmnij
Odpowiedz

  • +
  • -
Dmk880 - zdjęcie Dmk880 21.07.2011

Hmm no ok teraz rozumiem :)

Teraz myślę że sobie poradzę :)
Użytkownik Dmk880 edytował ten post 21.07.2011 16:53
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 21.07.2011

jeśli figury nie są identyczne to zamiast szerokości jednego przesunięcie ma być (0.5*x1 + 0.5*x2), gdzie x1 i x2 to te różne wymiary
Odpowiedz
Zablokowany