Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Oho, eipäs tietenkään ole, mutta tuo oli kyllä todella hidasta, ainakin minun koneellani.
Re: Tyhmät kysymykset
Teen sivultakuvattua avaruustaistelupeliä.
Haluan saada mun aluksen liikkumaan ylöspäin jos objekti aim on sen yläpuolella ja alaspäin jos se on sen alapuolella.
Se menee jostain syystä nyt niin, että alus liikkuu ylöspäin jos aim on sen vasemmalla puolella ja päinvastoin.
Haluan saada mun aluksen liikkumaan ylöspäin jos objekti aim on sen yläpuolella ja alaspäin jos se on sen alapuolella.
Se menee jostain syystä nyt niin, että alus liikkuu ylöspäin jos aim on sen vasemmalla puolella ja päinvastoin.
Code: Select all
FrameLimit 45
oma_alus=LoadObject("Media\ship.bmp", 60)
aim=LoadObject("Media\crosshair.bmp")
TranslateObject oma_alus,-150,0
Repeat
aimvert = MouseWX()
aimhor = MouseWY()
PositionObject aim,aimvert,aimhor
PointObject oma_alus,aim
alusvert = ObjectX(oma_alus)
If aimvert < alusvert Then TranslateObject oma_alus,0,-2
If aimvert > alusvert Then TranslateObject oma_alus,0,2
DrawScreen
Until EscapeKey()
End
Re: Tyhmät kysymykset
FrameLimit 45
oma_alus=LoadObject("Media\ship.bmp", 60)
aim=LoadObject("Media\crosshair.bmp")
TranslateObject oma_alus,-150,0
Repeat
aimvert = MouseWX()
aimhor = MouseWY()
PositionObject aim,aimvert,aimhor
PointObject oma_alus,aim
alushor = ObjectY(oma_alus)
If aimhor < alushor Then TranslateObject oma_alus,0,-2
If aimhor > alushor Then TranslateObject oma_alus,0,2
DrawScreen
Until EscapeKey()
End
Tuon pitäisi toimia.
oma_alus=LoadObject("Media\ship.bmp", 60)
aim=LoadObject("Media\crosshair.bmp")
TranslateObject oma_alus,-150,0
Repeat
aimvert = MouseWX()
aimhor = MouseWY()
PositionObject aim,aimvert,aimhor
PointObject oma_alus,aim
alushor = ObjectY(oma_alus)
If aimhor < alushor Then TranslateObject oma_alus,0,-2
If aimhor > alushor Then TranslateObject oma_alus,0,2
DrawScreen
Until EscapeKey()
End
Tuon pitäisi toimia.
Re: Tyhmät kysymykset
Minun ongelmanani on laatikko. Kun piirrän sen ruudun alareunaan se näkyy vilaukselta ja sitten se katoaa. Olen huomannut että repeat komento tuhoaa laatikon. Miten saisin laatikon pysymään repeat komennosta huolimatta Jos se on repeatin sisällä se kyllä näkyy muttaa vilkkuu häiritsevästi.
APUA TARVITAAN
Juu etsin asiaa haulla mutta en löytänyt.
APUA TARVITAAN
Juu etsin asiaa haulla mutta en löytänyt.
One object to rule them all
Just don't kill the Master
Just don't kill the Master
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Code: Select all
Repeat
Box 10, 10, 20, 20
DrawScreen
Forever
Vaikuttaapi vähän siltä, ettet ole sisäistänyt loopin käsitettä kovin hyvin. Eli kaikkea, mikä on repeatin ja foreverin välissä, toistetaan. Jos jotain ei toisteta, se tapahtuu kerran. Eli jos piirrät laatikon loopin ulkopuolella, se piirretään tasan kerran. Se siis välähtää näytöllä.
Ja kaikki mikä on näytöllä, on näytöllä kunnes seuraavan kerran komennetaan DrawScreen tai Cls. Silloin näyttö tyhjennetään ja (drawscreenin tapauksessa) piirretään uudelleen. Eli silloin vanha laatikko katoaa, ja jollei sitä piirretä uudestaan, se ei mistään näytölle ilmesty.
Re: Tyhmät kysymykset
Niin kuinkas kuvan saa pyörimään?
Tällä tavoin se ainakin on todella hidas:
kulma=0
repeat
if leftkey() then kulma+1 then rotateimage kuva,kulma
if rightkey() then kulma-1 then rotateimage kuva,kulma
drawscreen
forever
Tällä tavoin se ainakin on todella hidas:
kulma=0
repeat
if leftkey() then kulma+1 then rotateimage kuva,kulma
if rightkey() then kulma-1 then rotateimage kuva,kulma
drawscreen
forever
Re: Tyhmät kysymykset
Ja jotta FPS ei nousisi kovin korkealle, kannattaa kuva kiertää etukäteen. Ks. manuaalin esimerkki komennolle RotateImage. Miksihän muuten kuvan pyörittäminen on hidasta, mutta objekteilla sujuu nopeasti?
Asian tuntian oikein kirjoitus ohjeet:
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
Re: Tyhmät kysymykset
No tuossa on tulos mitä sain aikaseksi kun yritin väkertää tuon manuaalin esimerkin avulla, mutten vieläkään käsitä miten saan tuon tatin kääntymään kun painan vasemmalle tai oikealle.
Code: Select all
Dim kuvat(360)
alus=LoadImage("media\tatti.bmp")
x=10
y=10
Smooth2D ON
For i=0 To 360
kuvat(i)=CloneImage(alus)
RotateImage kuvat(i),-i
Next i
Repeat
Text 10,100,FPS()
If UpKey() Then y-1
If DownKey() Then y+1
If LeftKey() Then DrawImage kuvat(angle),x,y Then x-1
If RightKey() Then x+1
angle=WrapAngle(angle+1)
DrawImage alus,x,y
DrawScreen
Forever
Re: Tyhmät kysymykset
Suosittelisin käyttämään objekteja. Coolbasicissa on niiden käsittelyyn niin hyvät funktiot valmiina.
Asian tuntian oikein kirjoitus ohjeet:
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Maamyyrä, jos luuppi ei kerta miellytä, etkä sitä tarvitse niin kokeile tätä:
Nemesis, kannattaa heti irtautua objekteista, jos on siihen valmis. Ne ovat liiankin helppo tapa koodata. Aloittelijoille tietysti hyvä valinta.
Code: Select all
Box 10,10,20,20
DrawScreen OFF
WaitKey
Re: Tyhmät kysymykset
Juu, niiden käyttö minulta sujuukin jo jotenkin, mutta ajattelin yrittää luolalentelypeliä, jossa kartan on aika pakko olla kuva. Mutta taitaa sittenkin olla paras pysyä näissä objekteissa vieläNemesis wrote:Suosittelisin käyttämään objekteja. Coolbasicissa on niiden käsittelyyn niin hyvät funktiot valmiina.
Re: Tyhmät kysymykset
Kartan?Sepi wrote:Juu, niiden käyttö minulta sujuukin jo jotenkin, mutta ajattelin yrittää luolalentelypeliä, jossa kartan on aika pakko olla kuva. Mutta taitaa sittenkin olla paras pysyä näissä objekteissa vieläNemesis wrote:Suosittelisin käyttämään objekteja. Coolbasicissa on niiden käsittelyyn niin hyvät funktiot valmiina.
Mikäs pakko sitä karttaa on pyärittää?
Huuda mun ip:tä!
Re: Tyhmät kysymykset
Sanoinko muka että olin sitä karttaa pyörittämässä? Aluksia olisi tarkoitus pyörittää ja niiden alustenkin pitäisi olla kuvia, koska kuva-objekti törmäykset ovat vaikeita tai mahdottomia.
Re: Tyhmät kysymykset
Auttakaa nyt joku edes tuonne mun aiheeseen PLZ
Code: Select all
#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Re: Tyhmät kysymykset
Sovellettu coolbasicin esimerkistä:Sepi wrote:Sanoinko muka että olin sitä karttaa pyörittämässä? Aluksia olisi tarkoitus pyörittää ja niiden alustenkin pitäisi olla kuvia, koska kuva-objekti törmäykset ovat vaikeita tai mahdottomia.
Code: Select all
Dim images(360)
Text 0,0,"Pre-calculating.. Please wait"
DrawScreen
Smooth2D ON
'First Pre-calculate all images
masterimage= LoadImage("Media\cow.bmp")
'Generate 360 rotated versions from the master Image
For i=0 To 360
images(i)=CloneImage(masterimage)
RotateImage images(i), -i
Next i
Color cbblack
ClsColor cbwhite
x = 200
y = 150
'The actual game-loop
Repeat
'Draw at the center
x = x+((UpKey()-DownKey())*3*Sin(angle+90))
y = y+((UpKey()-DownKey())*3*Cos(angle+90))
DrawImage images(angle),x,y
'change the angle
angle=WrapAngle(angle+(LeftKey()-RightKey())*5)
Text 0,0,"Angle: "+angle
Text 200,0,FPS()
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset
Kiitoksia. Näyttää vaan sen verran vaikeilta nuo Wrapangle sini kosini jutut, että täytynee varmaan jokunen vuosi odotella ennen kuin yrittää uudestaan tätä projektia aloittaa
-
- Moderator
- Posts: 227
- Joined: Wed Aug 29, 2007 3:55 pm
Re: Tyhmät kysymykset
Kyllä ne oppii kun ei suoraan mene asiaa.
Tässä yksi tapa oppia sinit ja cosinit: http://edu.pyhaselka.fi/matikka/ohj20.htm
tai ainakin jotain niiden luonteesta.
huomaa että säde on aina saman pituinen
Tässä yksi tapa oppia sinit ja cosinit: http://edu.pyhaselka.fi/matikka/ohj20.htm
tai ainakin jotain niiden luonteesta.
huomaa että säde on aina saman pituinen
Re: Tyhmät kysymykset
Poista mahdoton-sana.Sepi wrote:Sanoinko muka että olin sitä karttaa pyörittämässä? Aluksia olisi tarkoitus pyörittää ja niiden alustenkin pitäisi olla kuvia, koska kuva-objekti törmäykset ovat vaikeita tai mahdottomia.
Mut tässä kuvilla,löysin koneeltani;)
(en ole siis itse tätä tehnyt)
Code: Select all
SCREEN 640,480
DrawToWorld OFF,ON,OFF //Piirtää kuvat keskelle ruutua.
HotSpot ON //Pistää kuvan piirron keskelle.
Tausta = LoadImage("Media\level.bmp") //Lataa taustan.
Dim Alus(360) //Luo alukselle taulukon 360 asteelle.
Alus(0) = LoadImage("Media\ship.bmp") //Lataa aluksen.
//Luo alukselle kääntyvyyden.
For i=1 To 360
Alus(i) = CloneImage(Alus(0))
RotateImage Alus(i), i
Next i
Const lNopeus = 0.2 //Liikkuvuusnopeus.
Const lNopeusMax = 5 //Max liikkuvuusnopeus.
Const kNopeus = 5 //Käännösnopeus.
X# = 0.0 //Akseli X.
Y# = 0.0 //Akseli Y.
VanhaX# = 0.0 //Akseli X törmäystä varten.
VanhaY# = 0.0 //Akseli Y törmäystä varten.
Kulma = 0 //Kulma.
NopeusX# = 0.0 // Nopeus akseli X.
NopeusY# = 0.0 // Nopeus akseli Y.
Repeat
//Piirtää kuvat.
DrawImage Tausta, 0, 0 //Piirretään ennen kaikkea muuta, jotta se on alimmaisena.
DrawImage Alus(Kulma), X, Y //Piirretään alus
//Päivitetään nopeus ja törmäys.
VanhaX = X
VanhaY = Y
X = X+NopeusX
Y = Y+NopeusY
If ImagesCollide(Tausta, 0, 0, 0, Alus(0), X, Y, 0) Then
X = VanhaX
Y = VanhaY
NopeusX = NopeusX*-0.6
NopeusY = NopeusX*-0.6
End If
//Eteenpäin -systeemi.
If UpKey() Then
NopeusX = NopeusX+Cos(Kulma)*lNopeus
NopeusY = NopeusY+Sin(Kulma)*lNopeus
End If
//Tarkistaa mennäänkö liian nopeasti.
If NopeusX > lNopeusMax Then NopeusX - lNopeus
If NopeusY > lNopeusMax Then NopeusY - lNopeus
If NopeusX < -lNopeusMax Then NopeusX + lNopeus
If NopeusY < -lNopeusMax Then NopeusY + lNopeus
//Kääntyminen.
If LeftKey() Then Kulma = Kulma-kNopeus
If RightKey() Then Kulma = Kulma+kNopeus
Kulma = TarkistaKulma(Kulma) //AINA sen jälkeen, kun kulmaa on muutettu, jottei taulukkoa lueta yli!
PositionCamera X, -Y //Pistää kameran seuraamaan alusta.
DrawScreen
Forever
Function TarkistaKulma(Kulma)
//Katsoo onko kulma yli 360 -rajan.
While Kulma > 360
Kulma-360
Wend
//Katsoo onko kulma ali 0 -rajan.
While Kulma < 0
Kulma+360
Wend
Return Kulma //Palauttaa tarkistetun kulman.
End Function
Huuda mun ip:tä!
Erpekele (Perkele)
En ole varma käsitinkö oikein, mutta tänne siis postataan kaikki "turhat" ongelmat joihin ei muualta löydä vastausta?
Ok, minullakin olisi eräs:
FrameLimit 40 'rajoita nopeutta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1
muzak = LoadSound ("Media\SK_Battle.mp3")
ukko = LoadObject ("Media\guy.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
botti = LoadObject ("Media\guy.bmp",75)
SetupCollision guy, kartta, 2, 5, 3
Repeat
PlaySound muzak
'Ukon ohjaus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
If Timer() > alkuaika + 1000 Then
newangle=Rand(360)
alkuaika = timer()
EndIf
RotateObject botti,CurveAngle(newangle,ObjectAngle(botti),10)
MoveObject botti,1
UpdateGame
CloneCameraPosition ukko
DrawScreen
Forever
Miksi tuo alkaa valittaa jo tässä vaiheessa, että jokaisesta asiasta, että Can't Load?
(Pistin vain osan, etteivät ne eräät ja tietyt muutkin osaamattomat kopioisi kaikkea itselleen oppimatta mitään)
Ok, minullakin olisi eräs:
FrameLimit 40 'rajoita nopeutta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1
muzak = LoadSound ("Media\SK_Battle.mp3")
ukko = LoadObject ("Media\guy.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
botti = LoadObject ("Media\guy.bmp",75)
SetupCollision guy, kartta, 2, 5, 3
Repeat
PlaySound muzak
'Ukon ohjaus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
If Timer() > alkuaika + 1000 Then
newangle=Rand(360)
alkuaika = timer()
EndIf
RotateObject botti,CurveAngle(newangle,ObjectAngle(botti),10)
MoveObject botti,1
UpdateGame
CloneCameraPosition ukko
DrawScreen
Forever
Miksi tuo alkaa valittaa jo tässä vaiheessa, että jokaisesta asiasta, että Can't Load?
(Pistin vain osan, etteivät ne eräät ja tietyt muutkin osaamattomat kopioisi kaikkea itselleen oppimatta mitään)