Entrar
Últimos assuntos
» Procuro Programador de game makerpor Wou Sex 15 Mar 2024, 10:27
» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
[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.
» [ENGINE - SCRIPT] Método de draw_sprite_part
» [Engine] Terreno Destrutível
» [Script]Script de conversão de formato de texto ANSI <--> UTF-8
» [ENGINE] Criação de terreno aleatorio.
» [ENGINE - SCRIPT] Método de draw_sprite_part
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|