Autor Wątek: Gravity!  (Przeczytany 4702 razy)

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 15:53:55
Ups, przez przypadek podałem stara wersje, już się wysyła nowa z poprawionymi gwiazdkami (i mam nadzieje ze myszka tez).

Klik! Wersja poprawiona :)
« Ostatnia zmiana: Październik 10, 2012, 15:58:15 wysłana przez Frondeus »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline jjoker8

  • Użytkownik

# Październik 10, 2012, 16:03:06
no ja mam xp właśnie :P. zawartość log.txt:

###### NEW GAME ######
..\Render.cpp(resize,19) INFO: Resize: 800 , 600
..\Render.cpp(resize,19) INFO: Resize: 800 , 600
..\Game.cpp(loadContent,67) INFO: Opengl 2.1
..\Game.cpp(loadContent,72) INFO: Opengl 3.0
..\Script.cpp(addAim,44) INFO: Aim R: 0

###### END GAME ######

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Październik 10, 2012, 16:06:39
Nowa wersja działa ;).

Offline jjoker8

  • Użytkownik

# Październik 10, 2012, 16:12:17
nie u mnie :(, still to samo

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 16:16:47
Zaintrygowałeś mnie. Pierwszy raz spotykam się takim błędem, a już trochę testowałem ta grę na rożnych komputerach. Byc może w kodzie gdzieś mam babola, albo to glfw sobie nie radzi z Twoim komputerem :P

Offline Raptor

  • Użytkownik

# Październik 10, 2012, 16:21:58
Albo mi się wydaje, albo nie ma żadnej zależności prędkości od czasu, jest tylko od ilości klatek :P Na początku po uruchomieniu mam do 1600 FPS, potem systematycznie spada. Gwiazdki zasuwają tak że nie da się ich trafić, w np drugim etapie (satelitarnie?) meteory wokół gwiazdek krążą z taką prędkością, że wygląda to tak, jakby cały czas było 5-6 tych meteorów :P

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 16:34:58
Heh?

const float Min_Step = 0.017;
Time time;
while (game.Run) {

time.dt = glfwGetTime() - time.realtime;
time.realtime += time.dt;

if (time.dt > 0.1) time.dt = 0.1;
if (time.dt < 0) time.dt = 0;

game.grabInput();

while (time.dt > Min_Step)
{
game.update(time);
time.dt -= Min_Step;
}
if (time.dt > 0)
{
game.update(time);
}

if (game.Run) game.render(time);
}
Nic nowego, potem w kodzie wszędzie mam:
bodies[i]->V.x += bodies[i]->a.x * dT;
bodies[i]->V.y += bodies[i]->a.y * dT;
Gdzie a to przyspieszenie a dT to Min_Step.

Offline Raptor

  • Użytkownik

# Październik 10, 2012, 16:40:08
Dobra, nie wiem jak to wytłumaczyć. W każdym bądź razie im więcej FPSów, tym szybciej wszystko zasuwa. Pokazać jak to wygląda za bardzo nie mam jak, Fraps nagrywa bodajże do 120 FPSów, chyba że nagram telefonem/kamerą :P

Offline Radarek

  • Użytkownik

  • +1
# Październik 10, 2012, 16:53:48
Czemu masz w pętli
game.update(time);

a nie
game.update(Min_Step);
?

I końcowy update wyglądałby wtedy tak:
game.update(time.td);
« Ostatnia zmiana: Październik 10, 2012, 16:55:19 wysłana przez Radarek »

Offline Raptor

  • Użytkownik

  • +1
# Październik 10, 2012, 16:57:25
Zrobiłbym edycję, ale pojawił się już następny post :)
Jakość marna bo nagrane telefonem, ale pokazuje problem:
https://www.dropbox.com/s/gxuy9nyj44oja0v/2012-10-10%2015.47.48.mp4

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 17:15:51
I have no idea what i did xD
Przekazywałem time po czym go nie używałem O_o.

Ok poprawiłem, kompiluje i zaraz będzie paczuszka :)

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 17:27:42
Link co ostatnio. Powinno być już ok.
Co do sterowania nie mam pojęcia i chyba nie naprawie na czas :C

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Październik 10, 2012, 17:41:32
 Póki pokazuje się "poradnik" to jest dobrze, ale jak napisy znikają to gwiazdka tak zapierdala, że nie można w nią trafić.

Offline Frondeus

  • Użytkownik

# Październik 10, 2012, 17:50:22
Damn. Wzor na przyspieszenie powinien chyba wygladac:
V += a * dt * dt;
zamiast
V += a * dt;

Offline Kos

  • Użytkownik
    • kos.gd

# Październik 10, 2012, 18:01:34
Dlaczego? Przyspieszenie to pierwsza pochodna prędkości, tak jak prędkość jest pierwszą pochodną pozycji.

Pokaż jak poprawiłeś tę pętlę główną?
« Ostatnia zmiana: Październik 10, 2012, 18:03:55 wysłana przez Kos »