TheAlexMG
Novato
Novato
Autor
Mensagens: 1
Registrado em: Qui Mar 07, 2019 10:21 pm
Karma: 0

Problema com preenchimento automático no GMS 1.4

Qui Mar 07, 2019 11:20 pm

Antes de tudo, oi. Eu sou Alexandre.
Estou estudando o Game Maker Studio (tenho a versão 1.4) por enquanto e tentando descobrir um pouco sobre as capacidades 3d da coisa.

Bom... Indo direto para o problema, é o seguinte:

Eu montei um sistema bem básico para um 3d com Terrain um pouco diferente do que normalmente fazem (admito que é por não entender o código que normalmente usam e não ter capacidade de usar o p3dc. Portanto, estou renegando o uso de dlls para criar meu pequeno framework).
Ele consiste em ter um objeto para o chão e a colisão dele se dá através do seu sprite. Ele pega o tamanho do sprite em x e em y e o usa pra criar as quatro alturas do chão em relação a um objeto que pode "puxar" essas pontas de acordo com a distância que existe entre o objeto que puxa e a ponta do objeto de chão. Isso funciona pra cima ou pra baixo, dependendo do objeto que uso pra puxar.
Cada canto do objeto de chão possui um z diferente e esses 4 z's são utilizados pra calcular qual vai ser o z do personagem.
No draw, o objeto só seria desenhado se estivesse a uma distância de 250 do personagem pra o game maker não começar a engasgar no FPS.
Por fim, para evitar o trabalho de encher a room de "quadradinhos" do objeto de chão, eu tinha montado um script no evento create para o chão se multiplicar para direita e para baixo até atingir o fim da room e um evento de criação da room em questão criaria o primeiro quadradinho de chão em x=0 e y=0.

Bom. Agora, vamos ao problema:
No Game Maker 8 tudo funcionou exatamente do jeito que planejei, pegando perfeitamente em uma room de até 2048x2048, então eu resolvi importar pro GMS pra ver se a diferença de código base (até onde eu ouvi falar o GM8 é delphi e o GMS é em c++, não sei se isso tá certo ou não)... E é aí que a coisa complica. Tudo o que fiz funciona perfeitamente bem... EXCETO A PARTE DO PREENCHIMENTO AUTOMÁTICO!
O código do preenchimento automático só funciona até 480x480. Acima disso dá erro.

Eis o código de preenchimento automático, dentro do objeto a ser multiplicado (obj_generic_ground):
SPOILER: Clique para ver o conteúdo


Vi que esse código, quando é executado mais que 15 ou 16 vezes (que equivale ao preenchimento de 480x480 dentro da room), é entendido pelo GMS como um erro de loop infinito (quando troco o "x<room_width" por "x<480" e a mesma coisa pro y a coisa dá certo). MAS NO GM8 ISSO FUNCIONA MUITO BEM!
Então... Como eu poderia proceder para que o GMS não interprete isso como um erro?

Tags:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes