Problema com a velocidade do jogo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Problema com a velocidade do jogo

Mensagem por Thiago_o_programador em Sab 10 Nov 2012, 16:47

Gente, o problema é esse, to desenvolvendo um sistema pra lanchonete do meu tio, a programação ta tudo bem, só que quando o jogo roda a taxa de FPS caí de 60 (Velocidade da room) pra 30, depois 15 vai pra 5, daí trava o PC todo, os codes que estou usando no DRAW do objeto (O único da room):
Spoiler:

Código:
draw_set_alpha(.4)
draw_set_color(c_white)
draw_rectangle_color(0,30,room_width,room_height,c_blue,c_blue,c_aqua,c_aqua,false)
draw_rectangle(room_width/4-30,room_height/4-30,(room_width/4)*3+30,(room_height/4)*3+30,false)
draw_set_alpha(1)
depth=-1000
draw_set_color(c_white)
draw_rectangle(0,0,room_width,30,false)
depth=-1000
draw_set_color(c_black)
draw_rectangle(0,0,room_width,30,true)
if cadastro=true global.va=true;else global.va=false;
scr_menu(0,"Cadastro")
if movimento=true global.va=true;else global.va=false;
scr_menu(106,"Movimento")
if relatorio=true global.va=true;else global.va=false;
scr_menu(230,"Relatórios")
if alterar_senha=true global.va=true;else global.va=false;
scr_menu(345,"Alterar Senha")
if sair=true global.va=true;else global.va=false;
scr_menu(492,"Sair")
if mostrar_cadastro=true {
if clientes=true global.va=true;else global.va=false;
scr_menu_ext(0,30,"Clientes",mostrar_cadastro)
if fornecedores=true global.va=true;else global.va=false;
scr_menu_ext(0,60,"Fornecedores",mostrar_cadastro)}
if mostrar_movimento=true {
if fechar_dia=true global.va=true;else global.va=false;
scr_menu_ext2(106,30,"Fechar Dia",mostrar_movimento)
if entrada_estoque=true global.va=true;else global.va=false;
scr_menu_ext2(106,60,"Entrada de Estoque",mostrar_movimento)
if saida_estoque=true global.va=true;else global.va=false;
scr_menu_ext2(106,90,"Saida de estoque",mostrar_movimento)}
if mostrar_relatorio=true {
if itens=true global.va=true;else global.va=false;
scr_menu_ext2(230,30,"Itens",mostrar_relatorio)
if saldo_estoque=true global.va=true;else global.va=false;
scr_menu_ext2(230,60,"Saldo do Estoque",mostrar_relatorio)
if inventario=true global.va=true;else global.va=false;
scr_menu_ext2(230,90,"Iventario",mostrar_relatorio)
if clientes2=true global.va=true;else global.va=false;
scr_menu_ext2(230,120,"Clientes",mostrar_relatorio)
if fornecedores2=true global.va=true;else global.va=false;
scr_menu_ext2(230,150,"Fornecedores",mostrar_relatorio)
if lucro_mes=true global.va=true;else global.va=false;
scr_menu_ext2(230,180,"Lucro do Mês",mostrar_relatorio)}

Script's:
Spoiler:

scr_menu:
Código:
f=font_add('Arial',14,true,false,0,255)
draw_set_font(f)
str=argument1
draw_set_color(c_black)
draw_rectangle(argument0,0,argument0+string_width(str)+20,30,true)

if global.va=true {draw_set_color(c_black)}else{draw_set_color(c_white)}
draw_rectangle(argument0,0,argument0+string_width(str)+20,29,false)

if global.va=false draw_set_color(c_black);else draw_set_color(c_white);
draw_text(argument0+10,5,str)
draw_set_color(c_white)

scr_menu_ext:
Código:
if argument3=true {
f=font_add('Arial',14,true,false,0,255)
draw_set_font(f)
str=argument2
draw_set_color(c_black)
draw_rectangle(argument0,argument1,argument0+150,argument1+30,true)

if global.va=true {draw_set_color(c_black)}else{draw_set_color(c_white)}
draw_rectangle(argument0,argument1,argument0+150,argument1+29,false)

if global.va=false draw_set_color(c_black);else draw_set_color(c_white);
draw_text(argument0+10,argument1+5,str)}else{draw_set_color(c_white)}
draw_set_color(c_white)

scr_menu_ext2:
Código:
if argument3=true {
f=font_add('Arial',14,true,false,0,255)
draw_set_font(f)
str=argument2
draw_set_color(c_black)
draw_rectangle(argument0,argument1,argument0+200,argument1+30,true)

if global.va=true {draw_set_color(c_black)}else{draw_set_color(c_white)}
draw_rectangle(argument0,argument1,argument0+200,argument1+29,false)

if global.va=false draw_set_color(c_black);else draw_set_color(c_white);
draw_text(argument0+10,argument1+5,str)}else{draw_set_color(c_white)}
draw_set_color(c_white)

Se vocês puderem direcionar alguma dll, ou alguma extensão, código, ou melhorar esses, estou aberto a sugestões, obrigado!

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Problema com a velocidade do jogo

Mensagem por kelvindeth em Sex 21 Dez 2012, 10:33

Thiago.
Geralmente quando o FPS cai e acaba travando o jogo, é porque algum objeto, ou alguma linha de comando cria instâncias sem parar. Quanto mais instâncias no game mais lento ele fica, rode o programa em modo Debug (F6).

Vai abrir uma caixinha junto com o projeto, olhe na parte de baixa se o número de instâncias aumenta gradativamente.

Espero ter ajudado.

kelvindeth

Número de Mensagens : 135
Idade : 24
Data de inscrição : 14/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema com a velocidade do jogo

Mensagem por Kapoty em Sex 21 Dez 2012, 10:58

Isso pode estar acontecendo pois você está fazendo muitas operações matemáticas como : room_width/4-30,room_height/4-30.

Por que ao envés de colocar esses cálculos, você não coloca logo o resultado, ou caso você queira um código mais fácil de editar depois, crie uma variável para esses cálculos.

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Problema com a velocidade do jogo

Mensagem por PedroX em Sex 21 Dez 2012, 12:44

Isso está acontecendo porque você está adicionando várias fontes por Step. Coloque o font_add() no Create/Game Start/Room Start. E depois use a variável como referência àquela fonte.

Resumindo, remova os códigos de adicionar fonte dos scripts. Depois coloque algo assim no Create:
Código:
arial14=font_add('Arial',14,true,false,0,255)

E sempre que for desenhar, coloque:
Código:
draw_set_font(arial14)

Assim você vai poupar memória em muito.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema com a velocidade do jogo

Mensagem por Conteúdo patrocinado Hoje à(s) 14:21


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum