Página 1 de 1

criar mapas Baseando em Sprite

Enviado: Sáb Abr 08, 2023 10:15 am
por scarylitz
ola

eu estou tentando criar um mapa usando um sistema baseado em ler sprite, sou uma pessoa que esta iniciando no game dev, então Não sei muita coisa, mas eu queria usar um sistema que o computador consiga sortear qual sala ele iria criar.
se alguém souber como fazer isso, ou conhecer um video que mostra isso, pois Não consegui achar nenhum video que conseguiu realmente me ajudar

Re: criar mapas Baseando em Sprite

Enviado: Sáb Abr 08, 2023 10:48 pm
por Chuaschinai
Não compreendi direito, você quer criar tipo um level baseado em uma sprite?, tipo ler um determinado pixel da sprite e então criar o objeto com base na cor desse pixel?

Re: criar mapas Baseando em Sprite

Enviado: Sáb Abr 08, 2023 11:19 pm
por scarylitz
Chuaschinai escreveu: Sáb Abr 08, 2023 10:48 pm Não compreendi direito, você quer criar tipo um level baseado em uma sprite?, tipo ler um determinado pixel da sprite e então criar o objeto com base na cor desse pixel?
isso mesmo, voce sabe se é possível?

Re: criar mapas Baseando em Sprite

Enviado: Dom Abr 09, 2023 1:10 am
por Chuaschinai
Sim é possível, existe algumas funções especificar para facilitar a obtenção de um pixel na tela, a mais comum é draw_getpixel ela pega um pixel na posição desejada na tela do jogo e retorna o valor do pixel ou seja a cor.

Código: Selecionar todos

var _color = draw_getpixel(mouse_x, mouse_y);
show_debug_message(_color);
No caso dessa função você teria que usar a função draw_sprite para desenhar o sprite na superficie da tela e então usar o draw_pixel para pegar os valores dos pixeis, assim:

Código: Selecionar todos

draw_sprite(spr_test, 0, 0, 0);
var _color = draw_getpixel(0, 0);
if(_color == c_red) {
	// cria determinado objeto
}else if(_color == c_blue) {
	// cria outro objeto
}
Nesse caso você teria que fazer um loop através dos pixeis da sprite para ir obtendo as cores, como provavelmente você fara isso uma vez para criar os objetos, a função draw_pixel não sera um problema, porém se usar ela a todo momento no step ou draw, pode causar um gargalo e perca de fps, pois ela é feita para coisas simples. Se precisar usar ela a todo momento por frame, terá que utilizar buffers para deixar isso mais leve.

Uma dica, o draw_sprite pode ser usado em qualquer evento não precisa ser necessariamente no draw, se você não precisa desenhar a sprite e somente pegar os pixeis, você pode fazer isso no Create que evita o uso demasiado da função.