Problem

Pytania nie pasujące do pozostałych for w tej kategorii.
Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Problem

Postautor: Woobuz » 23 sty 2014, 22:40

Opiszę to bardzo krótko. Stworzyłem demko pokoju, gdzie możemy się poruszać. Problem w tym, że gdy uruchomię już stworzony Game Engine Runtime, to myszka zaczyna się porządnie zacinać. Ciężko ją obrócić. To nie przypadek, bo już raz coś takiego miałem.

Poza tym światło jest bardzo dziwne.

W razie czego daję plik z grą:

http://hostuje.net/file.php?id=1228a592 ... 00de206c68

Napiszcie, co mogę zrobić, żeby to naprawić.

PS: Jeżeli chcecie, to mogę zmienić światło na np. Point, żeby to zacinanie myszki było widoczne. Jeżeli u was będzie ciągle ciemno, to spróbujcie dojść do którejś ściany. Wtedy może będzie widoczne światło :P
"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ć."

Nersael
Posty: 34
Rejestracja: 10 sty 2014, 16:56

Re: Problem

Postautor: Nersael » 23 sty 2014, 23:19

U mnie ciemnica, ale gdzieś coś tam nie wiem co takie lekkie białe kreski miało i dzięki temu czemuś mogłem stwierdzić, że u mnie myszka działała poprawnie.
Niemniej jednak miałem/mam taki problem z grą "Kula", którą można pobrać z tematu gier ukończonych i też spotkałem się z problemem cięcia myszki. Największy problem polega na tym, że nie zawsze to występuje.

Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Re: Problem

Postautor: Woobuz » 24 sty 2014, 0:20

Hmm dziwne. Ustawiłem światło na całe pomieszczenie, ale po uruchomieniu gry nic nie widać. Jakieś pomysły?
"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ć."

Nersael
Posty: 34
Rejestracja: 10 sty 2014, 16:56

Re: Problem

Postautor: Nersael » 24 sty 2014, 11:51

Najlepiej jakbyś dodał plik blend, chociaż można go wyciągnąć z tego co nadesłałeś to jednak należy uszanować jeśli chcesz technikę i pomysł zachować dla siebie.
Niemniej jednak z tego co dałeś do pobrania mogę wywnioskować, że nie zrobiłeś "pack in to blend file" przed "save as game engine runtime" co sprawiło, że textur może nie być a materiał był ustawiony na kolor czarny bez specular. Ale to tylko podejrzenie. Możliwe też, że lampa czy co tam oświetla znajduje się poza pomieszczeniem.

Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Re: Problem

Postautor: Woobuz » 24 sty 2014, 13:43

Dzięki Nersael :lol: Działa prawie idealnie. Teraz trzeba tylko naprawić to sterowanie myszką, żeby się tak nie zacinała. Zauważyłem, że to ścinanie po pewnym czasie znika. Jednakże chcę, żeby nie było żadnych ścinek w sterowaniu myszką.

Daję plik:

http://hostuje.net/file.php?id=1982ced8 ... 235cf5ce87
"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ć."

Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Re: Problem

Postautor: Woobuz » 24 sty 2014, 14:12

Chyba że ktoś pomoże mi ze skryptami i stworzy się wczytywanie poziomu. Ktoś wie jak to zrobić? :P
"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ć."

Awatar użytkownika
lukaszfito
Posty: 140
Rejestracja: 28 gru 2013, 1:37
Lokalizacja: Gdańsk
Kontaktowanie:

Re: Problem

Postautor: lukaszfito » 24 sty 2014, 16:19

Trudno powiedzieć gdzie jest błąd z myszką, ja miałem takie problemy jak dałem za dużo "return" i po prostu skrypty czasem resetowały się zanim wykonały swoje zadanie. Wszędzie może być błąd i bez debugera raczej się nie obejdzie - albo bez własnych komunikatów błędu. Jeśli nie chcesz zdradzać kodu programu przy udostępnianiu projektu, to możesz część skryptów "udziwnić" :shock: . Oto przykład:

To kod generujący las w jednym z moich projektów:

Kod: Zaznacz cały

def rosnij(ilosc):
    from bge.logic import getRandomFloat,getCurrentScene,getCurrentController
    objects=getCurrentScene().objects
    owner=getCurrentController().owner
   
    objects["ziemia"].scaling=owner["zasieg_widzenia"]/100,owner["zasieg_widzenia"]/100,0
    drzewko_0=objects["kamera"]
    scene=getCurrentScene()
    for i in range(ilosc):
        random_1=getRandomFloat()*200-100
        random_2=getRandomFloat()+0.7
        if i/4==i//4:
            bo=scene.addObject("dodaj_drzewo",drzewko_0)
            if random_1<1.5 and random_1>-1.5:
                random_1=random_1+20
            bo.position=random_1,i/4,-1
            bo.scaling=random_2,random_2,random_2
        elif i/3==i//3:
            bo=scene.addObject("dodaj_chmure",drzewko_0)
            bo.position=random_1,i/4,11+random_2*10
            bo.scaling=random_2*4,random_2*4,random_2
        else:
            bo=scene.addObject("dodaj_trawe",drzewko_0)
            bo.position=-random_1,i/4,-1
            bo.scaling=random_2,random_2,random_2
        bo.orientation=0,0,random_2
        bo.visible=False


A oto jego "udziwnienie":

Kod: Zaznacz cały

def ________________(_):
 from bge.logic import getRandomFloat,getCurrentScene,getCurrentController
 __=getCurrentScene().objects
 ___=getCurrentController().owner
 ________________=False
 _________________=100
 ___________________=2
 ____________________=___________________/___________________
 __________________=_________________*___________________
 
 __["____"].scaling=___["_____"]/_________________,___["_____"]/_________________,0
 _______=__["______"]
 ________=getCurrentScene()
 for _________ in range(_):
  __________=getRandomFloat()*__________________-_________________
  ___________=getRandomFloat()+0.7
  if _________/4==_________//4:
   ____________=________.addObject("_____________",_______)
   if __________<1.5 and __________>-1.5:
    __________=__________+20
   ____________.position=__________,_________/4,-____________________
   ____________.scaling=___________,___________,___________
  elif _________/3==_________//3:
   ____________=________.addObject("______________",_______)
   ____________.position=__________,_________/4,11+___________*10
   ____________.scaling=___________*4,___________*4,___________
  else:
   ____________=________.addObject("______________",_______)
   ____________.position=-__________,_________/4,-____________________
   ____________.scaling=___________,___________,___________
  ____________.orientation=0,0,___________
  ____________.visible=________________


W ten sposób zniechęcisz większość.. bo jak ktoś chce to i tak dobierze się do kodu.

Co do wczytywania poziomu, to chodzi Ci o: ekran wczytywania? wczytanie poziomu z pliku? wczytywanie modeli? generowania poziomu na podstawie własnego typu danych? a może doczytywaniu obszarów asynchronicznie?

Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Re: Problem

Postautor: Woobuz » 24 sty 2014, 16:35

Tak, chodziło mi o ekran wczytywania :)
"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ć."

Awatar użytkownika
lukaszfito
Posty: 140
Rejestracja: 28 gru 2013, 1:37
Lokalizacja: Gdańsk
Kontaktowanie:

Re: Problem

Postautor: lukaszfito » 24 sty 2014, 17:33

Ekran wczytywania to prostacka rzecz, jeśli nie ma pasku wczytywania. Dajesz najpierw bitmapę a potem wszystkie skrypty do wczytywania savów i obiektów - najprościej wywalić całą lokacje do pliku i wczytać przez LibLoad. a jak wczyta to wywalić bitmąpę :D . A wczytywanie z paskiem, to troszkę więcej zachodu i trzeba wtedy podzielić lokacje na więcej plików (modele, postacie, animacje) bo inaczej to pasek będzie miał tylko wartości 0% i 100%. Na pewno gdzieś się znajdzie czas na pokazanie tego i owego jak będziesz potrzebował ;) No chyba że ktoś ogarnia na tyle żeby zrobić obliczanie na załadowywanych bajtach (coś takiego widziałem), ale pamiętam że jakiś problem z tym był.

Awatar użytkownika
Woobuz
Posty: 263
Rejestracja: 16 wrz 2012, 12:47
Lokalizacja: Bielsko Biała
Kontaktowanie:

Re: Problem

Postautor: Woobuz » 24 sty 2014, 22:38

Teraz chciałbym zrobić włączanie/wyłączanie latarki, ale nie wiem jak to zrobić. Próbowałem z zasłanianiem źródła lampy - nie działa za dobrze, rotacja lampy wyszła średnio. Poza tym mam mały problem ze sparentowaniem obiektu do kamery - obiekt bardzo dziwnie się zachowuje, lata po całym pomieszczeniu, zmienia rozmiar, podczas gdy powinien ciągle stać przed kamerą.

Jakieś rady? :P
"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ć."


Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość