Eenvoudige fog

Dit script laat zien hoe je eenvoudige fog (mist) maakt in Game Maker.

Dit eenvoudige fog-script maakt het mogelijk om enkel het gedeelte bij een bepaalde regio zichtbaar te maken.
Het script heeft slechts 4 argumenten en is overal toepasbaar
/*

SCRIPT:
fog(x,y,sprite,color);


ARGUMENTS:
argument0: x of the middle of the fog
argument1: y of the middle of the fog
argument2: sprite of the fog (orgin needs to be set in the center of the sprite)
argument3: color outside the visible part and its fogsprite


EXAMPLE:
fog(mouse_x,mouse_y,spr_fog,c_black);


EVENT:
draw event!


CREDITS:
Please give credits to Bjarno from bjarno.be. Thanks :)


DISCLAIMER:
PLEASE DO NOT CHANGE ANYTHING EXCEPT IF YOU KNOW WHAT YOU ARE DOING!

*/


var maxvalue, fogcenter_x, fogcenter_y, fog_sprite, fog_width, fog_height, oldcolor, oldalpha, fog_color;

//global settings
maxvalue = 2000;

//convert arguments to vars
fogcenter_x = argument0;
fogcenter_y = argument1;
fog_sprite = argument2;
fog_color = argument3;

//get draw values (color & alpha)
oldcolor = draw_get_color();
oldalpha = draw_get_alpha();

//get size of the fogsprite
fog_width = sprite_get_width(fog_sprite);
fog_height = sprite_get_height(fog_sprite);

//set the color and the alpha
draw_set_color(fog_color);
draw_set_alpha(1);

//draw rectangles
draw_rectangle(
fogcenter_x-fog_width/2-maxvalue,
fogcenter_y-fog_height/2-maxvalue,
fogcenter_x+fog_width/2+maxvalue,
fogcenter_y-fog_height/2,
false);

draw_rectangle(
fogcenter_x-fog_width/2-maxvalue,
fogcenter_y+fog_height/2,
fogcenter_x+fog_width/2+maxvalue,
fogcenter_y+fog_height/2+maxvalue,
false);

draw_rectangle(
fogcenter_x-fog_width/2-maxvalue,
fogcenter_y-fog_height/2-maxvalue,
fogcenter_x-fog_width/2,
fogcenter_y+fog_height/2,
false);

draw_rectangle(
fogcenter_x+fog_width/2,
fogcenter_y-fog_height/2,
fogcenter_x+fog_width/2+maxvalue,
fogcenter_y+fog_height/2,
false);


//draw fogsprite
draw_sprite(fog_sprite,-1,fogcenter_x,fogcenter_y);

//reset draw values
draw_set_alpha(oldalpha);
draw_set_color(oldcolor);
Als je het script doorgelezen had heb je gezien dat je er ook een sprite voor moet gebruiken. Dit is de sprite die ik gebruik heb tijdens het testen van het script:



Dit script is niet bedoeld om multi-functioneel te zijn of om echt snel te zijn, er zijn snellere oplossingen mogelijk maar deze is goed voor het gemiddelde spel / programmeur. Het is eigenlijk niet meer dan het tekenen van 4 vierkantjes en vervolgens de fog tekenen.

Reactie's op Eenvoudige fog

Tycho Games17/08/2010 08:28.13
het is een best goed script maar doet niet wat ik wil
ik wil het al gebied waar je all bent geweest nog kunnen zien.

Bjarno17/08/2010 09:16.52
Dat noemt men fog of war in plaats van gewoon fog dacht ik. Misschien kan je daarop eens zoeken? :)



Geef een reactie op Eenvoudige fog


Naam*
E-mail
Website:
Reactie*
Maximum 4000 tekens
Captcha*


* = verplicht