Co do pierwszego to zrób sobie jakąś zmienną stan.
I przyjmijmy, że jeśli stan=0 to znaczy, że postać stoi, jeśli 1 to idzie, a jak 2 to biegnie.
Przy puszczeniu klawisz ustawiamy stan na 0.
Przy naciśnięciu:
GML
if(stan==0) //jeśli stoi
{
stan=1; //zaczyna iść
alarm[0]=30; //i ustawiamy alarm
}
else if(stan==1 && alarm[0]>0) //jeśli idzie i nacisnęliśmy 2 raz przed końcem alarmu
{
stan=2; //zaczyna biec
}
A w step daj poruszanie się zależnie od zmiennej stan.
Tylko w alarmie musisz dać cokolwiek, chociażby pusty komentarz, żeby w ogóle się odliczał. Przynajmniej w GM6 tak było.
Co do viewa to nie chce mi się teraz, może później. :)
EDIT:
Ok, do drugiego. Po pierwsze wszystkim obiektom, które mają być widoczne w view tworzysz wspólnego parenta. Nazywjmy go na przykład obj_parent.
W End Step jakiegoś obiektu co ma jeden egzemplarz i służy do takich generalnych obliczeń jak właśnie to:
GML
var xmin;
var ymin;
var xmax;
var ymax;
xmin=view_xview[0];
ymin=view_yview[0];
xmax=view_xview[0]+view_wview[0];
ymax=view_yview[0]+view_hview[0];
with(obj_parent)
{
xmin=min(xmin,x);
ymin=min(ymin,y);
xmax=max(xmax,x);
ymax=max(ymax,y);
}
view_xview[0]=(xmin)/2;
view_yview[0]=(ymin)/2;
view_wview[0]=(xmax-xmin);
view_hview[0]=(ymax-ymin);
Spróbuj, może zadziała. Nie sprawdzałem, bo bym musiał na Windowsa się przełączać.