GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por 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

Ir para baixo

Como faço um buraco negro? Empty Como faço um buraco negro?

Mensagem por Dan044 Sáb 11 Dez 2010, 21:19

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!
Dan044
Dan044

Games Ranking : Nota D

Notas recebidas : 3D Snake - D
Data de inscrição : 14/11/2010
Reputação : 3
Número de Mensagens : 209
Prêmios : Como faço um buraco negro? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.chefreceitas.blogspot.com

Ir para o topo Ir para baixo

Como faço um buraco negro? Empty Re: Como faço um buraco negro?

Mensagem por CLS Sáb 11 Dez 2010, 21:45

1° Pergunta: Coloque esse código no evento Step do obj_player:

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é!Happy
CLS
CLS

Data de inscrição : 13/05/2010
Reputação : 1
Número de Mensagens : 298
Prêmios : Como faço um buraco negro? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.totalmakers.forumais.com

Ir para o topo Ir para baixo

Como faço um buraco negro? Empty Re: Como faço um buraco negro?

Mensagem por Henrique_GJ Sáb 11 Dez 2010, 21:56

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
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : Como faço um buraco negro? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

Como faço um buraco negro? Empty Re: Como faço um buraco negro?

Mensagem por PedroX Dom 12 Dez 2010, 07:38

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

_________________


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:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Como faço um buraco negro? Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Como faço um buraco negro? Empty Re: Como faço um buraco negro?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos