Auton "kiihtyvyys" esimerkki:

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 7:40 pm
Location: C:\Työpöytä

Auton "kiihtyvyys" esimerkki:

Post by TukeKoodi »

Eli tämmönen esimerkki kuinka saada muuttujien avulla autoon asteittainen kiihdytys.
Kommentointi on mukana, ja noviiseille kivoja leikkejä lopussa :D
Koodi:

Code: Select all

//Esimerkki: Auton "liukuva" nopeus by TukeKoodi:

//Näytön koko
SCREEN 640,480

//Kuvia sekunissa korkeintaan 40
FrameLimit 40

//Tausta -> sininen
ClsColor cbBlue

//Lataa auto:
//Polku:
ukko1 = LoadObject ("Media\car2.bmp",72)

//Muuttujat nopeudelle ja nopeuden kasvulle:
//Huomaa:
//Kiihtyvyys hidastuu yli 3.0
//nopeudessa kts. Kiihtyvyyden hidastuminen
nopeus#=0
kasvu#=0.15
pois#=0.15
Repeat


MoveObject ukko1, nopeus

//Kääntyminen vain jos vauhti >0
    If LeftKey() And nopeus>0 Then TurnObject ukko1,5
    If RightKey() And nopeus>0 Then TurnObject ukko1,-5

//Jarrutus: JOS vasen nuoli() niin hidastuminen yli 2x nopeampaa
//="jarrutus"
If DownKey() Then
    pois=0.40
    Else
    pois=0.15
EndIf
   
    //Kiihtyvyys:
    If UpKey() Then
    nopeus+kasvu
    //Muuten  
    Else    
    nopeus-pois
    EndIf

//Ei saa mennä pakille:
If nopeus<0 Then nopeus=0

//Nopeus ei saa olla yli 4:
If nopeus>4.0 Then nopeus=4.0

//Kiihtyvyyden hidastuminen
If nopeus>3.0 Then
kasvu=0.01
Else
kasvu=0.15
EndIf

//"Nopeusmittari" :D
    Color cbBlack
    Text 0,0, "Nopeus: "+nopeus
    
    DrawScreen

Forever

//Aloittelijoille leikkeja:
//1) Muuta lukua rivillä 29
//2) Muuta lukua rivillä 31
//3) Poista rivi 43
//4) Poista rivi 46
//5) Muuta lukua rivillä 55
//5) Muuta lukua rivillä 56
Aloittelija, koodaaja, jotain...
CbFUN :D
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Auton "kiihtyvyys" esimerkki:

Post by MaGetzUb »

Ihan vain sanoisin, että vaikka nopeus+kasvu, on helppo tapa korottaa lukua, niin silti koodaus syistä vaihtaisin nopeus+kasvu -> nopeus = nopeus + kasvu. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 7:40 pm
Location: C:\Työpöytä

Re: Auton "kiihtyvyys" esimerkki:

Post by TukeKoodi »

MaGetzUb wrote:Ihan vain sanoisin, että vaikka nopeus+kasvu, on helppo tapa korottaa lukua, niin silti koodaus syistä vaihtaisin nopeus+kasvu -> nopeus = nopeus + kasvu. :)
Eikös tuo ole sama onko se nopeus+kasvu vai nopeus=nopeus+kasvu, mitä eroa noilla on?
Aloittelija, koodaaja, jotain...
CbFUN :D
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Auton "kiihtyvyys" esimerkki:

Post by MaGetzUb »

CoolBasicissa ei mitään, mutta muissa ohjelmointikielissä on. Ja minun mielestäni ainakin on nätimpää ja selkeämpää lukea "yleisillä käytännöillä" kirjoitettua koodia. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Auton "kiihtyvyys" esimerkki:

Post by koodaaja »

Jälkimmäinen on huomattavasti selkeämpi ja niin se toimii useissa muissakin kielissä. Parashan olisi nopeus += kasvu, mutta sitä ei CB:stä valitettavasti löydy.
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Dimple »

koodaaja wrote:Jälkimmäinen on huomattavasti selkeämpi ja niin se toimii useissa muissakin kielissä. Parashan olisi nopeus += kasvu, mutta sitä ei CB:stä valitettavasti löydy.
Tuo nyt menee jo kikkailuksi.

Usein (ja erityisesti tässä tapauksessa) mielestäni selkeys > kompaktius, eli "nopeus = nopeus + kasvu". Etenkin C++-koodista saa aikamoista sillisalaattia koodamalla mahdollisimman kompaktisti.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Koodiapina »

Dimple wrote:
koodaaja wrote:Parashan olisi nopeus += kasvu
Usein (ja erityisesti tässä tapauksessa) mielestäni selkeys > kompaktius, eli "nopeus = nopeus + kasvu".
Asian selkeyden määrä on riippuvainen tarkastelevasta subjektista. Esimerkiksi minun mielestäni "nopeus += kasvu" on yhtä selkeä kuin "nopeus = nopeus + kasvu".
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Dimple »

Grandi wrote:
Dimple wrote:
koodaaja wrote:Parashan olisi nopeus += kasvu
Usein (ja erityisesti tässä tapauksessa) mielestäni selkeys > kompaktius, eli "nopeus = nopeus + kasvu".
Asian selkeyden määrä on riippuvainen tarkastelevasta subjektista. Esimerkiksi minun mielestäni "nopeus += kasvu" on yhtä selkeä kuin "nopeus = nopeus + kasvu".
Lainataanpas kunnolla jos lainataan. Laitoin tuon kommentin omaan kappaleeseensa siksi, ettei se enää liittynyt siihen mitä lainasin.

Olen kuitenkin samaa mieltä, että "nopeus += kasvu" on yhtä selkeä kuin "nopeus = nopeus + kasvu", mutta ensimmäistä muota ei CB:ssä voi käyttää, joten jätin sen pois.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Koodiapina »

Dimple wrote:Lainataanpas kunnolla jos lainataan. Laitoin tuon kommentin omaan kappaleeseensa siksi, ettei se enää liittynyt siihen mitä lainasin.
Pelkkä kappaleen vaihtaminen ei riitä esittämään, että et enää viittaa lainaamaasi viestiin. On nimittäin tavallista vastata lainattuun tekstiin monikappaleisellakin tekstillä.
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Dimple »

Pointti oli että tämä:
Dimple wrote:
koodaaja wrote:Jälkimmäinen on huomattavasti selkeämpi ja niin se toimii useissa muissakin kielissä. Parashan olisi nopeus += kasvu, mutta sitä ei CB:stä valitettavasti löydy.
Tuo nyt menee jo kikkailuksi.

Usein (ja erityisesti tässä tapauksessa) mielestäni selkeys > kompaktius, eli "nopeus = nopeus + kasvu". Etenkin C++-koodista saa aikamoista sillisalaattia koodamalla mahdollisimman kompaktisti.
Oli muuttunut täksi:
Dimple wrote:
koodaaja wrote:Parashan olisi nopeus += kasvu
Usein (ja erityisesti tässä tapauksessa) mielestäni selkeys > kompaktius, eli "nopeus = nopeus + kasvu".
Ensimmäisen voi näköjään tulkita ainakin kahdella eri tavalla, jälkimmäisen vain sinun omallasi. Eli vääristelit vastaustani. Ainakin minun mielestäni.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Koodiapina »

Dimple wrote:Ensimmäisen voi näköjään tulkita ainakin kahdella eri tavalla, jälkimmäisen vain sinun omallasi. Eli vääristelit vastaustani. Ainakin minun mielestäni.
Minä tulkitsin viestisi juuri sillä tavoin kuin annoit sen tulkita. Kuten sanoin, pelkkä kappaleen vaihtaminen ei riitä ilmaisemaan, että et enää viittaa lainattuun tekstiin. Jos et kerro sitä jollain tavalla, et voi myöskään olettaa lukijan arvaavan sitä. Näin ollen on oikein tulkita, että toinen kappale on samaa sarjaa ensimmäisen kanssa, koska et antanut perusteita tulkita asiaa muulla tavalla. Kyse on nyt siitä, että ilmaisit itsesi väärin/puutteellisesti.

Sitä paitsi et voi kirjoittaa omasta mielestäsi moniselitteisiä viestejä (poislukien ironia), ja sitten vedota siihen, että ne olisi voinut käsittää jollain muullakin tavalla. Lukijalla on lupa olettaa, että tarkoitat yksiselitteisesti sitä, mitä sanot.
mikeful
Moderator
Moderator
Posts: 523
Joined: Mon Aug 27, 2007 8:36 pm
Location: Vaasa, Finalnd
Contact:

Re: Auton "kiihtyvyys" esimerkki:

Post by mikeful »

Vähemmän offtopikkia. Enemmän asiaa.
Pelejä: Pelasta puhe, Grinder
Muuta: Blogi, Twitter
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Dimple »

Tuota esimerkkiä voisi vielä jatkaa vaikkapa niin, että lisäisi jonkin yksinkertaisen vaihde-systeemin. Sen voisi vaikkapa postata tämän ketjun jatkoksi.

Se voisi esimerkiksi toimia jotenkin näin: lisätään nopeusmittarin rinnalle kierroslukumittari. Jos kierrokset ovat alle tietyn rajan, kiihtyvyys on huomattavan hidas. Jos kierrokset saavuttavat tietyn ylärajan, kiihtyvyys loppuu kokonaan ja vauhti pysyy vakiona. Vaihtamalla isommalla vaihteelle kierrosluku pienenee. Kierrosluvun voisi ehkä laskea suoraan nopeudesta kertoimella, joka riippuu vaihteesta? Kierroslukumittari olisi siis lähinnä pelaajalle apuna.
Last edited by mikeful on Sun Feb 27, 2011 4:30 pm, edited 1 time in total.
Reason: Pyysin pysymään asiassa. Ei mennyt perille.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Auton "kiihtyvyys" esimerkki:

Post by koodaaja »

Jos halutaan auton toiminnasta loogisempaa ja helpommin pääteltävää, uskoisin että on helpompi lähteä liikkeelle juuri päinvastoin - moottorin kierroslukuahan kaasulla säädellään, nopeus määräytyy sitten vaihteen mukaan. Samalla systeemiin voi viritellä manuaalivaihteet ja vaikka kytkimen, jos joku sellaisista tykkää :)
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: Auton "kiihtyvyys" esimerkki:

Post by Valtzu »

Joskus tuli tämän ongelman kanssa värkkäiltyä. viewtopic.php?p=878#p878
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Auton "kiihtyvyys" esimerkki:

Post by valscion »

Valtzu wrote:Joskus tuli tämän ongelman kanssa värkkäiltyä. viewtopic.php?p=878#p878
Tuossa on ainoa ongelma se että jos painaa kaasua kun vaihdetaan ylemmältä vaihteelta alemmalle, hyppää nopeus suoraan sen alemman vaihteen maksimiin (siis jos nopeus oli ennen maksimia suurempi). Jos kaasua ei paineta, tippuu nopeus oikealla tavalla alaspäin. Hauska vaan huomata miten se kierrosluku nousee ihan huikeesti, jos tiputetaan korkeammalta vaihteelta nopeasti alas kovassa vaihteessa - aivan kuin oikeassa elämässäkin :). Sitten jos tuosta ottaa koodia omaan peliin pitäis lisätä moottoririkko jos RPM nousee yli 6000 tai vastaavaa :P
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Auton "kiihtyvyys" esimerkki:

Post by Dimple »

koodaaja wrote:Jos halutaan auton toiminnasta loogisempaa ja helpommin pääteltävää, uskoisin että on helpompi lähteä liikkeelle juuri päinvastoin - moottorin kierroslukuahan kaasulla säädellään, nopeus määräytyy sitten vaihteen mukaan. Samalla systeemiin voi viritellä manuaalivaihteet ja vaikka kytkimen, jos joku sellaisista tykkää :)
Noinhan se oikeasti menee, ja olisi varmaan suurin piirtein yhtä helppo toteuttaa.

Valtzun esimerkki on kyllä hyvä, mutta täysin aloittelijalle voi olla ehkä vähän haastavaa toteuttaa tuollaista systeemiä muuten kuin copy-pastella (ymmärtäminen voi jäädä aika pinnalliseksi). Muille kuin aloittelijoille sen ei pitäisi olla liian vaikeaa.
Post Reply