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
[Script] + Engine terreno destruivel
Página 1 de 1
[Script] + Engine terreno destruivel
Descrição:Scripts para jogos com terreno destrutivel.
Bem,a engine é do famoso joguinho worms,e o link para download esta aqui:
NOTE:GAME MAKER STUDIO
https://dl.dropboxusercontent.com/s/pa95tvo6ro0lef1/wormsCP.gmz?token_hash=AAGdf42XBzphh6Kkr0wddzfubV7YqmSPiMsk45xZv4bkxw&dl=1
Os scripts passarei aqui:
Primeiramente vamos criar o script "init_terrain",e adicionar isso a ele:
Agora crie o script "generate_terrain_col" e adicione isso a ele:
Agora adicione o script "col_sc" e adicione isto a ele:
Agora o ultimo script chamado "delten":
Os argumentos dos script:
-init terrain(tamanho das particulas de colisão)
Quanto maior o tamanho das particulas,maior a velocidade para o computador gerar o terreno e deleta-lo.
Recomendo de 3 a 5.
-generate_terrain_col()
Este fara a area de colisão,não ha argumentos.
-col_sc(tamanho x,tamanho x2,tamanho y,tamanho y2,metade do tamanho y,rebate horizontal,rebate vertical)
Esse rebate vertical e rebate horizontal é para se você quer que eles rebatam quando colidirem no terreno ou se quer que fiquem parados(true ou false).
ATENÇÂO,é tamanho nos argumentos,não posição.
-delten(x,y,tamanho)
Local que sera destuido o terreno e o tamanho da destruição.
Para montar:
Crie um objeto chamado "terrain" e no creat dele coloque:
Crie um objeto chamado drw.
Os objetos que serão o terreno destrutivel do jogo você poe como parent o objeto drw.
No "destroy event" do objeto "terrain" coloque:
e coloque no draw:
Você pode checar tambem com o script "col_sc" se houve colisão.
Por exemplo:
FLW haha
Bem,a engine é do famoso joguinho worms,e o link para download esta aqui:
NOTE:GAME MAKER STUDIO
https://dl.dropboxusercontent.com/s/pa95tvo6ro0lef1/wormsCP.gmz?token_hash=AAGdf42XBzphh6Kkr0wddzfubV7YqmSPiMsk45xZv4bkxw&dl=1
Os scripts passarei aqui:
Primeiramente vamos criar o script "init_terrain",e adicionar isso a ele:
- Código:
global.st=argument0
capx=0
capy=0
capxmax=room_width/global.st
capymax=room_height/global.st
global.surf=surface_create(capxmax*global.st,capymax*global.st)
surface_set_target(global.surf)
draw_clear_alpha(c_black,0)
for (i=0;i<10000;i+=1)
{
if instance_number(drw)>0
{
pet=instance_nearest(x,y,drw)
draw_sprite_ext(pet.sprite_index,pet.image_index,pet.x,pet.y,pet.image_xscale,pet.image_yscale,pet.image_angle,c_white,pet.image_alpha)
with pet
instance_destroy()
}
else
i=10000
}
surface_reset_target()
instance_deactivate_all(1)
Agora crie o script "generate_terrain_col" e adicione isso a ele:
- Código:
repeat 100
if capy<capymax
{
cor=surface_getpixel(global.surf,capx*global.st,capy*global.st)
global.terreno[capx,capy]=false
if color_get_red(cor)>0 or color_get_green(cor)>0 or color_get_blue(cor)>0
global.terreno[capx,capy]=true
capx+=1
if capx>capxmax
{capx=0
capy+=1}
}
else
{
instance_activate_all()
instance_destroy()
}
draw_set_color(c_black)
draw_set_alpha(1)
draw_rectangle(view_xview[0],view_yview[0],view_xview[0]+window_get_width(),view_yview[0]+window_get_height(),0)
draw_set_color(c_white)
Agora adicione o script "col_sc" e adicione isto a ele:
- Código:
sc=0
for (i=0;i<10000;i+=1)
{
if global.terreno[((x+hspeed)/global.st),((y+vspeed)/global.st)+argument2]
{
y-=1
if argument6
vspeed=-(abs(vspeed))
sc=1
}
else
i=10000
}
for (i=0;i<10000;i+=1)
{
if global.terreno[((x+hspeed)/global.st)+argument0,((y+vspeed)/global.st)+argument4]
{
x+=1
if argument5
hspeed=abs(hspeed)
sc=1
}
else
i=10000
}
for (i=0;i<10000;i+=1)
{
if global.terreno[((x+hspeed)/global.st)+argument1,((y+vspeed)/global.st)+argument4]
{
x-=1
if argument5
hspeed=-(abs(hspeed))
sc=1
}
else
i=10000
}
for (i=0;i<10000;i+=1)
{
if global.terreno[((x+hspeed)/global.st),((y+vspeed)/global.st)+argument3]
{
y+=1
if argument6
vspeed=abs(vspeed)
sc=1
}
else
i=10000
}
return sc
Agora o ultimo script chamado "delten":
- Código:
surface_set_target(global.surf)
draw_set_color(make_color_rgb(0,0,0))
draw_circle(argument0,argument1,argument2,0)
var capxmax,capx,capy,capymay,cor,capstarx
capstarx=(argument0/global.st)-(argument2/global.st)
if capstarx<0 capstarx=0
capstary=(argument1/global.st)-(argument2/global.st)
if capstary<0 capstary=0
capxmax=(argument0/global.st)+(argument2/global.st)
if capxmax>room_width capxmax=room_width
capymay=(argument1/global.st)+(argument2/global.st)
if capymay>room_height capymay=room_height
capy=capstary
for(capx=capstarx;capy<capymay;capx+=1)
{
cor=surface_getpixel(global.surf,capx*global.st,capy*global.st)
if color_get_red(cor)=0
if color_get_green(cor)=0
if color_get_blue(cor)=0
global.terreno[capx,capy]=false
if capx>capxmax
{capx=capstarx
capy+=1}
}
draw_set_blend_mode(bm_subtract)
draw_circle(argument0,argument1,argument2,0)
draw_set_blend_mode(bm_normal)
surface_reset_target()
Os argumentos dos script:
-init terrain(tamanho das particulas de colisão)
Quanto maior o tamanho das particulas,maior a velocidade para o computador gerar o terreno e deleta-lo.
Recomendo de 3 a 5.
-generate_terrain_col()
Este fara a area de colisão,não ha argumentos.
-col_sc(tamanho x,tamanho x2,tamanho y,tamanho y2,metade do tamanho y,rebate horizontal,rebate vertical)
Esse rebate vertical e rebate horizontal é para se você quer que eles rebatam quando colidirem no terreno ou se quer que fiquem parados(true ou false).
ATENÇÂO,é tamanho nos argumentos,não posição.
-delten(x,y,tamanho)
Local que sera destuido o terreno e o tamanho da destruição.
Para montar:
Crie um objeto chamado "terrain" e no creat dele coloque:
- Código:
init terrain(tamanho das particulas de colisão)
- Código:
generate_terrain_col()
Crie um objeto chamado drw.
Os objetos que serão o terreno destrutivel do jogo você poe como parent o objeto drw.
No "destroy event" do objeto "terrain" coloque:
- Código:
instance_create(0,0,surdrw)
e coloque no draw:
- Código:
draw_surface(global.surf,0,0)
Você pode checar tambem com o script "col_sc" se houve colisão.
Por exemplo:
- Código:
if col_sc(-1,1,1,-1,0,0,0)
instance_destroy()
FLW haha
Android Project- Games Ranking :
Notas recebidas : D+C+C
Data de inscrição : 20/08/2013
Reputação : 1
Número de Mensagens : 77
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Pedido de Script] Terreno irregular c/ Inclinacao
» [Engine] Terreno Destrutível
» [Script]Script de conversão de formato de texto ANSI <--> UTF-8
» [ENGINE] Criação de terreno aleatorio.
» HUD Engine [Tululoo Script]
» [Engine] Terreno Destrutível
» [Script]Script de conversão de formato de texto ANSI <--> UTF-8
» [ENGINE] Criação de terreno aleatorio.
» HUD Engine [Tululoo Script]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos