Conectar-se
Quem está conectado
32 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 32 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : 3D Snake - D
Data de inscrição : 14/11/2010
Número de Mensagens : 209
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.chefreceitas.blogspot.com

Como faço um buraco negro?

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!
avatar
Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.totalmakers.forumais.com

Re: Como faço um buraco negro?

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
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Como faço um buraco negro?

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
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como faço um buraco negro?

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
Conteúdo patrocinado

Re: Como faço um buraco negro?

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum