Foorumi logo

Kurihiir and Kuus strike again.
kurihiir - 3.3.2011 10:41

Nali on siis selles et paari kuu eest otsustasime ka midagi jälle tegema hakata. Siin teemas siis, oletatavasti selle jaoks et endas mingisugust motivatsiooni hoida, postitan ma uuendusi ja screenshotte ja mida kõike veel. Samuti küsin oskajatelt abi.
Nime mängul veel ei ole ja graafika läheb kõik välja vahetamisele kui kuus ükskord valmis saab enda pixeldamise. Seniks aga.

Võib proovida lisatud exet ja aidata mul koodi parandada. Kuna viimasest gml progemisest on ikka mõned aastad, siis on kood hetkel päris ulme. Äge oli aga avastada et paljud asjad siiski veel käpas on.

Küsimuste korral kindlasti ka proovijatel küsida.

Probleemid hetkel:
* Normaalne gravitatsiooniga burxi pildumine - nii et burx lendaks nagu ta päriselus lendab algul kõrgemale ja siis kiirelt allapoole. Hetkel on asi lahendatud pathidega lihtsalt. MIs ei ole eriti äge.

*Kumerad ja kaldus teed. Mida ma praegu üritan lahendada mingisuguste pisikese ümmarguste soliditega, jah need ongi need junnid mida näha on seal. Reaalsuses tahaks asja samuti normaalsemalt teha.

ahjaa.

Nooltega liigub, shift avab inventory, shift pluss vasak/parem klahv navigeerib inventorys. ALT restardib. Space pillub burxi.

http://www.upload.ee/image/1166414/Untitled.png

Natukene koodi ka siis. Väga jubedat koodi ja igasugused täiustused on oodatud.

tegelase step, hüppamine, kukkumine jne. Solid_cube on kandiline( hetkel maailmas nähtamatu) solid nö. põrand, ja solid_cube_2 on ümmargune solid millega ma üritasin kaldteid teha.

//kui hüpe on käigus ja hüppeaeg pole veel läbi, siis tõuseme kõrgemale
if jump = 1 && jumptimer > 0{y-=(y*0.06)*(jumptimer*0.1); jumptimer-=1; }
//kui hüppeaeg jõuab nulli siis läheb ka hüpe nulli
if jumptimer = 0 {jump=0;}
//kui on kokkupuude tahke kehaga ja me oleme kehast kõrgemal siis sätime end samale kõrgusele
if distance_to_object(instance_nearest(x,y,solid_cube)) < distance_to_object(instance_nearest(x,y,Solid_cube_2)) {
if collision_point(x,y,solid_cube,true,false) && y < instance_nearest(x,y,solid_cube)
{y=instance_nearest(x,y,solid_cube).y;}
else
//kui kokkupuudet pole siis kukume alla
{y+=(y*0.02)*2;}
}
else
{
if collision_point(x,y,Solid_cube_2,true,false) && y < instance_nearest(x,y,Solid_cube_2)
{y=instance_nearest(x,y,Solid_cube_2).y;}
else
//kui kokkupuudet pole siis kukume alla
{y+=(y*0.02)*2;}
}

Ja burxi pildumise kood on siin.

if global.char_dir=1
{
path_start(burxi_tee2,12,0,false);
}
else
{
path_start(burxi_tee,12,0,false);
}
alarm[1]=30;


Zimonak - 3.3.2011 12:03

See pathiga burxi viskamine on jah päris kole.
Tee parem nii:

Kui vajutatakse "space"
*loo uus burger (mängija.x, mängija.y)
*säti viskamine vasakule või paremale

Kui luuakse burger
*speed= mingisugune stardikiirus
*gravity= 0.2 (või midagi muud)
*kui mängija oli suunaga paremale
*direction=45
*kui mängija oli suunaga vasakule
*direction=135

Gamemaker peaks niimoodi looma loogilise viskamise.
On võimalus ka trigonomeetrilisi funktsioone kasutada, kuid see pole vist antud olukorras vajalik.


kurihiir - 3.3.2011 18:06

Tänud idee eest. Näeb tõesti parem välja. kuigi veel veidi ebaloomulik.
Muutujad hetkel järgmised.

speed=12;
gravity=0.6;
if global.char_dir = 1
{
direction=45;
}
else
{
direction=135;
}

Uus parandatud versioon: http://xn--m-0faa.eu/game/alpha_007.exe