Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Como faço um buraco negro?
4 participantes
Página 1 de 1
Como faço um buraco negro?
Oi...
Quero fazer um buraco negro, ou seja, quando o player estiver perto dele, como faço para ele ser sugado?
-
Outra duvida: como faço para que o player possa empurrar uma pedra?
Valeu!
Quero fazer um buraco negro, ou seja, quando o player estiver perto dele, como faço para ele ser sugado?
-
Outra duvida: como faço para que o player possa empurrar uma pedra?
Valeu!
Re: Como faço um buraco negro?
1° Pergunta: Coloque esse código no evento Step do obj_player:
Onde N é o número da distância mínima entre o obj_player e o buraco negro e S é a velocidade em que o obj_player var ser sugado.
2° Pergunta:
Coloque esse código no evento Step do obj_player:
Até!
- Código:
if distance_to_object(obj_buraco_negro) >= N
{
mp_linear_step_object(x,y,S,obj_buraco_negro)
}
Onde N é o número da distância mínima entre o obj_player e o buraco negro e S é a velocidade em que o obj_player var ser sugado.
2° Pergunta:
Coloque esse código no evento Step do obj_player:
- Código:
if place_empty(8*other.hspeed,8*other.vspeed)
{
x = x+8*other.hspeed
y = y+8*other.vspeed
}
Até!
Re: Como faço um buraco negro?
bom, para ser sugado é facil
mas depende muito do que você deseja você não especificou muito
tem tipo quando a distancia for menor que um determinado valor o player começa a ser sugado
para isso utilize:
if point_distance(x1,y1,x2,y2) < distancia minima
{
puxa o player
}
iria ficara mais ou menos assim:
if point_distance(x,y,player.x,player.y) < 200
{
if player.x < x {with(player){x+=5}}
if player.x > x {with(player){x-=5}}
if player.y < y {with(player){y+=5}}
if player.y > y {with(player){y-=5}}
}
esse certamente é o jeito mais facil e rapido de ser fazer um buraco negro mas por sua vez ele está muito simples e "artificial"
eu te deu a base mas não quero te dar o script inteiro pois se não o jogo que vc fizer no final você não pode dizer "fui eu que fiz tudinho eu sei fazer jogo" na verdade eu quero te ENSINAR o codigo daí está a sua "base"
vc terá que "ampliar" esse codigo para que ele fique mais perfeito
primeiro neste codigo o player atravessara paredes, use if place_free...
segundo existe uma distancia e velocidade fixa, logo o player estara parado na reta do buraco negro sem ser sugado, derrepende dá um passo para tras e voa longe, crie variaveis, você por exemplo pode pegar um valor, checar se ele está menor que um determinado valor e maior que outro e subtrair dele a distancia do player ao buraco negro e colocar no lugar da velocidade, no nosso caso no lugar do 5, isso faria o player começar a ser sugado bem devagarzinho e quando for chegando perto começar a ir mais longe, inclusive você pode ampliar o codigo mais e mais por exemplo nisso que te falei mesmo que o player esteja indo bem lentamente se o chao acabar ele continua andando bem lentamente o que é impossivel pois se a força for pequena ele deverácair, enfim, crie um bucado de variaveis para fazer o codigo mais realista
terceiro, o seu player começara a andar numa direção como vamos dizer... desse jeito ele só anda em angulos para cima, baixo, esquerda e direita, e em diagonal como se formasse 45°, você pode usar direction e speed que ficaria perfeito um buraco negro genuino é capaz até de sugar o proprio monitor para dentro dele mesmo xD
mas enfim...
e empurrar um pedra é facil
você faz uma mask para a predra menor que a sprite, uns 5... 10... se possivel deixe uns 15 pixels menor que a sprite (horizontalmente claro verticalmente não), então o numero de pixeis que vc deixar vc usa pra checar se está colidindo a tantos pixeis de distancia usando place_meeting, exemplo, supondo que você deixe na mask uns 5 pixeis a menos de mask
if place_meeting(x - 5,y,player)
{
--explico depois--
}
if place_meeting(x + 5,y,player)
{
++explico depois++
}
esse codigo checa primeiro se a pedra está colidindo com o player a esquerda, então coloque no lugar de --explico depois--:
if place_free(x+5,y) {x+=6}
e no lugar de ++explico depois++ coloque:
if place_free(x-5,y) {x-=6}
não se esqueça de fazer com que o player não possa atravessar a pedra, pois se ele puder quando a pedra colidir com a parede por exemplo ela vai parar e o player vai atravessar ela, pode dar um efeito legal no jogo, pode não dar... se for o caso deixe a pedra "solida" ou sei lá poe codigos no step
enfim espero ter resolvido seu problema mas infelizmente vc não especificou seu problema se tivesse a ajuda seria muito melhor mas fiz o melhor que pude levando em consideração que tenho preguiça de digitar se não tivesse aí eu teria ajudado de verdade xD
mas depende muito do que você deseja você não especificou muito
tem tipo quando a distancia for menor que um determinado valor o player começa a ser sugado
para isso utilize:
if point_distance(x1,y1,x2,y2) < distancia minima
{
puxa o player
}
iria ficara mais ou menos assim:
if point_distance(x,y,player.x,player.y) < 200
{
if player.x < x {with(player){x+=5}}
if player.x > x {with(player){x-=5}}
if player.y < y {with(player){y+=5}}
if player.y > y {with(player){y-=5}}
}
esse certamente é o jeito mais facil e rapido de ser fazer um buraco negro mas por sua vez ele está muito simples e "artificial"
eu te deu a base mas não quero te dar o script inteiro pois se não o jogo que vc fizer no final você não pode dizer "fui eu que fiz tudinho eu sei fazer jogo" na verdade eu quero te ENSINAR o codigo daí está a sua "base"
vc terá que "ampliar" esse codigo para que ele fique mais perfeito
primeiro neste codigo o player atravessara paredes, use if place_free...
segundo existe uma distancia e velocidade fixa, logo o player estara parado na reta do buraco negro sem ser sugado, derrepende dá um passo para tras e voa longe, crie variaveis, você por exemplo pode pegar um valor, checar se ele está menor que um determinado valor e maior que outro e subtrair dele a distancia do player ao buraco negro e colocar no lugar da velocidade, no nosso caso no lugar do 5, isso faria o player começar a ser sugado bem devagarzinho e quando for chegando perto começar a ir mais longe, inclusive você pode ampliar o codigo mais e mais por exemplo nisso que te falei mesmo que o player esteja indo bem lentamente se o chao acabar ele continua andando bem lentamente o que é impossivel pois se a força for pequena ele deverácair, enfim, crie um bucado de variaveis para fazer o codigo mais realista
terceiro, o seu player começara a andar numa direção como vamos dizer... desse jeito ele só anda em angulos para cima, baixo, esquerda e direita, e em diagonal como se formasse 45°, você pode usar direction e speed que ficaria perfeito um buraco negro genuino é capaz até de sugar o proprio monitor para dentro dele mesmo xD
mas enfim...
e empurrar um pedra é facil
você faz uma mask para a predra menor que a sprite, uns 5... 10... se possivel deixe uns 15 pixels menor que a sprite (horizontalmente claro verticalmente não), então o numero de pixeis que vc deixar vc usa pra checar se está colidindo a tantos pixeis de distancia usando place_meeting, exemplo, supondo que você deixe na mask uns 5 pixeis a menos de mask
if place_meeting(x - 5,y,player)
{
--explico depois--
}
if place_meeting(x + 5,y,player)
{
++explico depois++
}
esse codigo checa primeiro se a pedra está colidindo com o player a esquerda, então coloque no lugar de --explico depois--:
if place_free(x+5,y) {x+=6}
e no lugar de ++explico depois++ coloque:
if place_free(x-5,y) {x-=6}
não se esqueça de fazer com que o player não possa atravessar a pedra, pois se ele puder quando a pedra colidir com a parede por exemplo ela vai parar e o player vai atravessar ela, pode dar um efeito legal no jogo, pode não dar... se for o caso deixe a pedra "solida" ou sei lá poe codigos no step
enfim espero ter resolvido seu problema mas infelizmente vc não especificou seu problema se tivesse a ajuda seria muito melhor mas fiz o melhor que pude levando em consideração que tenho preguiça de digitar se não tivesse aí eu teria ajudado de verdade xD
Re: Como faço um buraco negro?
if distance_to_object(buraco) < 150
{
gravity_direction=point_direction(x,y,buraco.x,buraco.y)
gravity=0.5;
}
isso faz que ele seja acelerado...
FLW
{
gravity_direction=point_direction(x,y,buraco.x,buraco.y)
gravity=0.5;
}
isso faz que ele seja acelerado...
FLW
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Tópicos semelhantes
» Buraco Negro Que Suga Naves ???
» como eu faço pra carregar o texto de um arquivo .txt, como fazer a janela piscar e como desenhar sprite em jogo 3d?
» Como eu faço um jogo como mario kart?
» problema como resetar room como faço?
» Como eu faço?
» como eu faço pra carregar o texto de um arquivo .txt, como fazer a janela piscar e como desenhar sprite em jogo 3d?
» Como eu faço um jogo como mario kart?
» problema como resetar room como faço?
» Como eu faço?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos