Problem
- lukaszfito
- Posty: 140
- Rejestracja: 28 gru 2013, 1:37
- Lokalizacja: Gdańsk
- Kontaktowanie:
Re: Problem
A nie możesz sparentowaniem pustego obiektu do kamery i latarki do pustego obiektu? Swoją drogą to latarka powinna dobrze działać, bo mi działa jak jest dzieckiem kamery. Jeśli latarka zmienia kształty, to może coś jest poplątane z orientation.
Co do wyłączenia latarki, to wystarczy Ci jedna linijka:
energy przyjmuje wartości od 0 do 10, tak jak energy w ustawieniach latarki
Co do wyłączenia latarki, to wystarczy Ci jedna linijka:
Kod: Zaznacz cały
bge.logic.getCurrentScene().objects["latarka"].energy=0
energy przyjmuje wartości od 0 do 10, tak jak energy w ustawieniach latarki

Re: Problem
Nie nie, latarka działa dobrze. Kiedy sparentuję jakiś nowy obiekt, załóżmy cube, to zachowuje się tak jak opisałem 

"Bo w każdym z nas jest Chaos i Ład, Dobro i Zło. Ale nad tym można i trzeba zapanować. Trzeba się tego nauczyć."
Re: Problem
Hmm, jest może skrypt na to, że gdy latarka jest zgaszona, to tym samym guzikiem ją włączamy?
"Bo w każdym z nas jest Chaos i Ład, Dobro i Zło. Ale nad tym można i trzeba zapanować. Trzeba się tego nauczyć."
- lukaszfito
- Posty: 140
- Rejestracja: 28 gru 2013, 1:37
- Lokalizacja: Gdańsk
- Kontaktowanie:
Re: Problem
Jest:
Kod: Zaznacz cały
# pobieramy z logic tylko to co jest potrzebne
from bge.logic import getCurrentController
# pobieramy właściciela (latarkę)
owner=getCurrentController().owner
# pobieramy status pierwszego sensora
# (kostka logiki Keyboard - nazwa sensora nieważna)
status=owner.sensors[0].status
#pobieramy wartość energy latarki
ene=owner.energy
# sprawdzamy czy wciśnięto przycisk
# (jeśli zmienimy 1 na 3, to sprawdzimy czy przycisk jest puszczony)
if status==1:
# jeśli jest światło, to zgaś
if ene==1:ene=0
#jeśli nie, to zapal
else:ene=1
# ustalamy wartość energy latarki
owner.energy=ene
Ostatnio zmieniony 25 sty 2014, 12:56 przez lukaszfito, łącznie zmieniany 2 razy.
Re: Problem
Nie wiem czemu, ale nie działa 
Może robię coś źle. Bo wiesz, mam dwie latarki, ale ten kod użyłem do jednej nazwanej "latarka". Wkleiłem cały kod, nazwałem "latarka" i ustawiłem na kostkach logiki klawisz i ten właśnie kod.

Może robię coś źle. Bo wiesz, mam dwie latarki, ale ten kod użyłem do jednej nazwanej "latarka". Wkleiłem cały kod, nazwałem "latarka" i ustawiłem na kostkach logiki klawisz i ten właśnie kod.
"Bo w każdym z nas jest Chaos i Ład, Dobro i Zło. Ale nad tym można i trzeba zapanować. Trzeba się tego nauczyć."
Re: Problem
A nie można w kostkach logiki dać, że po naciśnięciu guzika światło przechodzi do drugiego stanu, a w tym stanie jest ustawione "End Object"
- lukaszfito
- Posty: 140
- Rejestracja: 28 gru 2013, 1:37
- Lokalizacja: Gdańsk
- Kontaktowanie:
Re: Problem
Rzeczywiście - mój błąd
. Następnym razem będę sprawdzał albo napiszę rano
. Zmieniłem skrypt w poprzednim poście, bo błędny nam niepotrzebny. Ulepszyłem go tak, byś nie musiał specjalnie ustalać nazwy latarki a nawet sensora Keyboard - wystarczy, że ten sensor będzie pierwszy (lub jedyny) na liście sensorów latarki.
Jeśli chcesz, żeby dwie latarki gasły i zapalały się w tym samym momencie, to musisz dodać do importu getCurrentScene, o tak:
I na końcu kodu dodać linijkę zmieniającą wartość drugiej latarki, o tak:
Musisz tutaj wstawić nazwę drugiej latarki.
Jeśli chcesz żeby latarki zmieniały się przemiennie
, to ostatnią linijkę daj tak:
A jeśli sprawdzisz status w ten sposób:
to światło będzie włączać się tylko przy wciśniętym przycisku (musisz tylko ustawić żeby w projekcie, enegry latarki było równe 0, bo inaczej będzie gasnąć jak wciśniesz przycisk).
W sumie ciekawie by było jakbyś zrobił noktowizor
który potrzebowałby baterii, ale za to miał większy zasięg. Możesz wykorzystać Filter 2D z Gray Scale, to kolorki znikną
w noktowizorze.


Jeśli chcesz, żeby dwie latarki gasły i zapalały się w tym samym momencie, to musisz dodać do importu getCurrentScene, o tak:
Kod: Zaznacz cały
from bge.logic import getCurrentController,getCurrentScene
I na końcu kodu dodać linijkę zmieniającą wartość drugiej latarki, o tak:
Kod: Zaznacz cały
getCurrentScene().objects["nazwa_drugiej_latarki"].energy=ene
Musisz tutaj wstawić nazwę drugiej latarki.
Jeśli chcesz żeby latarki zmieniały się przemiennie

Kod: Zaznacz cały
getCurrentScene().objects["nazwa_drugiej_latarki"].energy=1-ene
A jeśli sprawdzisz status w ten sposób:
Kod: Zaznacz cały
if status==1 or status==3:
to światło będzie włączać się tylko przy wciśniętym przycisku (musisz tylko ustawić żeby w projekcie, enegry latarki było równe 0, bo inaczej będzie gasnąć jak wciśniesz przycisk).
W sumie ciekawie by było jakbyś zrobił noktowizor


Re: Problem
Wielkie dzięki. Teraz działa idealnie.
Następna sprawa. Jak można zauważyć, podczas poruszania się słychać kroki. Jednak po wciśnięciu dwóch klawiszy odpowiedzialnych za poruszanie, dźwięk zaczyna się rozdwajać, tak jakby był przypisany do każdego klawisza. Da się jakoś zrobić, żeby dźwięk był jednakowy, żeby działał normalnie, gdy po prostu się poruszamy?
Następna sprawa. Jak można zauważyć, podczas poruszania się słychać kroki. Jednak po wciśnięciu dwóch klawiszy odpowiedzialnych za poruszanie, dźwięk zaczyna się rozdwajać, tak jakby był przypisany do każdego klawisza. Da się jakoś zrobić, żeby dźwięk był jednakowy, żeby działał normalnie, gdy po prostu się poruszamy?
"Bo w każdym z nas jest Chaos i Ład, Dobro i Zło. Ale nad tym można i trzeba zapanować. Trzeba się tego nauczyć."
- lukaszfito
- Posty: 140
- Rejestracja: 28 gru 2013, 1:37
- Lokalizacja: Gdańsk
- Kontaktowanie:
Re: Problem
Mało korzystam z kostek logiki, ale chyba wystarczy połączyć wszystkie sensory ruchu (czyli Keyboard WSAD) do kontrolera "Or" a kontroler do aktywatora dźwięku. Wtedy dźwięk powinien odpalić się, gdy choćby jeden sensor wykryje wciśnięcie klawisza, więc nawet jak wszystkie wciśniesz to dźwięk będzie pojedynczy, bo prowadzi do niego tylko jedna nić 

Re: Problem
Ok, to wiem. Problem w tym, że chciałbym ustawić za pomocą Freq. w Sensorze Keyboard odległość między dźwiękami. Jednak nie wiem jak to zrobić, żeby działało. Albo włącza się pojedynczy dźwięk, albo jest tak jak podczas biegu - żadnych przerw.
Spróbuję z przedłużeniem dźwięku. Może wtedy będzie dobrze
Spróbuję z przedłużeniem dźwięku. Może wtedy będzie dobrze

"Bo w każdym z nas jest Chaos i Ład, Dobro i Zło. Ale nad tym można i trzeba zapanować. Trzeba się tego nauczyć."
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość