Eli olen hieman Javaa lukenut ja tiedostanut eri funktioiden sun muiden käyttötarkoituksen. Kuitenkaan en tiedä mistä alottaa, kun tehtävänä on tälläinen:
1. Kahdeksan auton näköistä grafiikkaa pyörii rataa ympäri 2. Tarvitaan siis 8 auton kuvaa ja 1 rata. (No piirtää osaan) 3. Javalla luultavasti pamautetaan rata kuva paikalleen. (osaan) 4. Autoista pitää tehdä objecteja joilla on tietty laskelma mikä kertoo niiden maalintulo järjestyksen: Lähtö pisteet. (pisteistä ei sen enempää osaan kyllä suhteuttaa ne kunhan saan seuraavan kohdan toimimaan) 5. Jos teen autosta objectin mikä sisältää muuttujan "pisteet" ja esimerkiksi tämä pisteet tarkoittaa ajolinjoja ja nopeutta niin teen sen esim näin: var nopeus= pisteet/2 //Mutta miten teen ajolinjat. ja sitten toinen. Miten saan ne autot liikkumaan.
Lue lisää perusteita, ennen kuin lähdet tekemään tuota.
mika132 kirjoitti:
var nopeus= pisteet/2
Tuo on JavaScriptiä. Onko tarkoitus käyttää siis sitä vai Javaa?
mika132 kirjoitti:
ja sitten toinen. Miten saan ne autot liikkumaan.
Muuttamalla niiden sijaintia. Sijainti ilmoitetaan usein X ja Y-koordinatteina ja jos ne pysyvät koko ajan vakioina, auto pysyy paikallaan. Jos ne taas muuttuvat, niin auto liikkuu.
Kyllä minä sen tiesin jo C++ mutta miten siis otetaan se kuva liikutettavaksi? Kun esimerkiksi C++ voi tehdä piirto funktion jossa se piirretään X,Y kohdille, mutta mikä se funktio on Javassa vai Javascriptissä. Javalla se toteuttaa ilmeisesti pitää koska tuohon tarvitaan mitä ilmeisemmin olioita.
Myös JavaScriptistä löytyy oliot, jotka ovat tosin vain yksi lähestysmistapa ongelmanratkaisuun, eivätkä suinkaan vaatimus. Javalla voit toteuttaa tuon esim. applettina tai ihan webappina (JNLP), JavaScriptissä voit käyttää esim. canvas-elementtiä tai divejä kera taustakuvien. Apuna voi käyttää vaikkapa jotain valmista kirjastoa, satunnaisena esimerkkinä GameJS.
Jatka ensin tuota ohjelmiston (pelin) määrittelyä. Määrittele rata, auto, ....
Kirjoita näille objekteille mitä ne tekee esim. Toisensa kohdatessaan? Jos eivät kohdanneet toisiansa? ... eli yleisellä tasolla miettimättä toteutusta.
Määrittele myös pelin kulku esim. "peli jatkuu kunnes auto on kiertänyt rataa 4 kierrosta", ...
... Saat mallin, jossa määritelty pelin eri objektit, objektien toiminnot ja määritteet.
Toiminnot (ja pelin kulun) voit muuttaa tilakoneeksi, jota toistetaan kunnes peli on loppu.
Nyt sinulla on toimiva peli, ja voit aloittaa miettimään kuinka sen toteutat (eli saat näkymään siinä kompuutterin ruudulla). Käyttämällä sopivaa valmiskirjastoa, toteuttamista voi nopeuttaa periyttämällä rata, auto, ... objekteille sopivia kirjaston tarjoamia luokkia ja toteuttamalla rata, auto, ... objektien toimintoja näiden kirjasto-luokkien funktioilla.
Mutta toteutusta kannattaa tehdä vasta kun peli, sen kulku, ja pelin eri objektit on määritelty (eli kirjoitettu paperille).
Kysymyksen perusteella olet yhä aivan pihalla ohjelmoinnin perusperiaatteista eli siitä, millaisista osista ohjelmien toiminnot (auton liike, törmäyksen käsittely ym.) muodostuvat ja miten niitä voisi lähteä kehittämään. "Miten saan sen liikkumaan" on aivan täydellisen väärä lähtökohta.
Kannattaa minusta unohtaa nämä pelihommat ja opetella ensin ohjelmoimaan paremmin; ei tuosta tule muuten yhtään mitään. Ratkaise ensin edes pari ensimmäistä sivua PHP-haasteesta, jotta saat jonkinlaisen pohjan ohjelmointiin yleensä.
Ohjelmointi ei ole olennaisesti helpompaa millään kielellä, eli kun et saanut C++:lla oikein mitään aikaan, tuskinpa kielen vaihto asiaa auttaa – aivan samanlaiset ongelmat tulevat taas vastaan, eikä niistä selviä ilman omaa järjenkäyttöä, laskutaitoa ja ohjelmoinnin perusteiden hyvää hallintaa.
Ainoat merkittävästi helpommat vaihtoehdot ovat valmiit kirjastot ja pelintekokielet ja -ohjelmat. Ehkä sinulle sopisi paremmin vaikkapa CoolBasic, jossa on valmiiksi funktioita mm. törmäysten tarkistamiseen. (Kannattanee siirtyä sen omille foorumeille kyselemään tarkemmin, täällä ei paljon CB:tä käytetä.)
Mureankuhan autopeli saattaa auttaa(taisi olla 2. suosituin koodi). Jos koodaminen muuten ei hallussa kannattaa tehdä kuten Metabolix ylempänä sanoo.
Aihe on jo aika vanha, joten et voi enää vastata siihen.