Como faço um buraco negro?

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

Como faço um buraco negro?

Mensagem por Dan044 em Sab 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

Ranking : Nota D
Número de Mensagens : 209
Idade : 18
Data de inscrição : 14/11/2010
Notas recebidas : 3D Snake - D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.chefreceitas.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como faço um buraco negro?

Mensagem por CLS em Sab 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

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Re: Como faço um buraco negro?

Mensagem por Henrique_GJ em Sab 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

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Como faço um buraco negro?

Mensagem por PedroX em 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

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: Como faço um buraco negro?

Mensagem por Conteúdo patrocinado Hoje à(s) 23:53


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