Page 20 of 43
Re: Tyhmät kysymykset (II/2009)
Posted: Sat Aug 01, 2009 7:21 pm
by matti3
Tein sen datoilla, mutta ei toimi koodit joita käytän...
Code: Select all
maali=MakeObject()
maali_data=99
For y_5=1 To MapWidth()
For x_5=1 To MapWidth()
If GetMap2(3,x_5,y_5)>19 Then maali_data+1
'way=maxdata
Next x_5
Next y_5
If ObjectsOverlap(ukko,maali) Then lap+1
Ja osaan datakerroksien lisäyksen jo, sekä kaikki muut kerrokset.
Re: Tyhmät kysymykset (II/2009)
Posted: Sat Aug 01, 2009 8:10 pm
by phons
Johtuisikohan se siitä, että otat kaksi kertaa kartan leveyden, siis x, että y kohdassa vaikka y kohassa pitäisi ottaa MapHeight(), joo tuosta näkeekin että otit tuon CB:n esimerkistä, koska se virhe oli siellä.
Re: Tyhmät kysymykset (II/2009)
Posted: Sun Aug 02, 2009 12:40 am
by matti3
Ei johtunut siitä.
Re: Tyhmät kysymykset (II/2009)
Posted: Sun Aug 02, 2009 11:55 am
by phons
Minulla on tällainen todella typerä ongelma, tiedän... Jostain kumman syystä se pääsi kahteen If:iin vaikka ne ovat elseillä... Pääongelma, nyt ei juuri ollut se, anteeksi tuli pieni moka... siis se on se pääongelma XD, siis yritin, tehdä sellaista että se piirtää neliöitä, vain neljään suuntaan, tämä on niinsanotusti pohjaa tienrakentamiseen...
Code: Select all
Repeat
If MouseHit(1) And build_r = False Then
build_r = True
start_x_ = MouseWX()
start_y_ = MouseWY()
ClearMouse
EndIf
DrawGame
If build_r = True Then
road_angle = GetAngle(start_x_,start_y_,MouseWX(),MouseWY())
road_angle = WrapAngle(road_angle)
DrawToWorld ON
If road_angle < 45 Or road_angle > 315 Then
For x_ = start_x_ To MouseWX() Step 32
Color cbWhite
Box x_,start_y_,32,32,0
Next x_
ElseIf road_angle =< 315 Or road_angle > 225 Then
For y_ = start_y_ To MouseWY() Step -32
Color cbWhite
Box start_x_,y_,32,32,0
Next y_
ElseIf road_angle =< 225 Or road_angle > 135 Then
For x_ = start_x_ To MouseWX() Step -32
Color cbWhite
Box x_,start_y_,32,32,0
Next x_
ElseIf road_angle =< 135 Or road_angle > 45 Then
For y_ = start_y_ To MouseWY() Step 32
Color cbWhite
Box start_x_,y_,32,32,0
Next y_
EndIf
DrawToWorld OFF
EndIf
Text 0,0,road_angle
DrawScreen
Until EscapeKey()
Edit: Siis, se, että nuo neliöt menevät moneen suuntaan, eli ylös\alas että sivuille... vaikka kaiken järjen mukaan niin ei pitäisi käydä kun käyttää ElseIf:iä...
Re: Tyhmät kysymykset (II/2009)
Posted: Sun Aug 02, 2009 12:07 pm
by TheFish
phons wrote:Minulla on tällainen todella typerä ongelma, tiedän... Jostain kumman syystä se pääsi kahteen If:iin vaikka ne ovat elseillä... Pääongelma, nyt ei juuri ollut se, mutta siis yritin, tehdä sellaista että se piirtää neliöitä, vain neljään suuntaan, tämä on niinsanotusti pohjaa tienrakentamiseen...
Jospa vaikka aloitat kertomalla mikä on ongelmana (siis hieman enemmän suomen kieliopin mukaisesti).
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 1:19 pm
by skorpioni-cb
Miten tehdään sellainen juttu että kun valot on päällä niin objecti varastoi valoa ja sitten kun valo olisi poissa niin objceti alkaisi loistaa?
EDIT:Sain idean eräästä matkamuistosta.
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 4:30 pm
by Feuer
Code: Select all
While Soundplaying(biisi)=TRUE 'biisi on loadsoundilla määritelty .mp3
text x,y,isokasatietoja
wend
Tuottaa MAVin, warum?
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 4:38 pm
by Character
Et voi käyttää käyttää SoundPlaying -komentoa LoadSoundin kanssa.
Lataa se näin: biisi = PlaySound(...blaa...)
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 5:29 pm
by matti3
Miksei muuta kierrosten määrää?
Code: Select all
maali=MakeObject()
maali_data=99
For y_5=1 To MapHeigth()
For x_5=1 To MapWidth()
If GetMap2(3,x_5,y_5)>19 Then maali_data+1
'way=maxdata
Next x_5
Next y_5
If ObjectsOverlap(ukko,maali) Then lap+1
Tuosta koodista ei tapahdu oikeastaan mitään. :O
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 5:41 pm
by Substance
matti3 wrote:Miksei muuta kierrosten määrää? Tuosta koodista ei tapahdu oikeastaan mitään. :O
Koska maali objektilla ei ole kuvaa, lataa se objektina tai maalaa se.
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 5:41 pm
by Pate5
skorpioni-cb wrote:Miten tehdään sellainen juttu että kun valot on päällä niin objecti varastoi valoa ja sitten kun valo olisi poissa niin objceti alkaisi loistaa?
EDIT:Sain idean eräästä matkamuistosta.
No aluksi varmaan tarvitaan animaatio sille objektille. Kun valot ovat päällä (esim. valot_paalla=1) niin objektin varastoimaa valoa kuvaavaa muuttujaa suurennetaan (esim. valoa_varastossa + 1), ja näytetään valaistun objektin kuva. Kun valot ovat pois päältä, näytetään hohtavan esineen kuva, ja varastoitua valoa kuvaavaa muuttujaa vähennetään. Kun muuttuja on nollassa, näytetään kuva pimeästä objektista. Animaatioon voi myös laittaa monta eri kirkkautta varastoidun valon määrän mukaan.
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 5:42 pm
by Pate5
LittleGreen wrote:matti3 wrote:Miksei muuta kierrosten määrää? Tuosta koodista ei tapahdu oikeastaan mitään. :O
Koska maali objektilla ei ole kuvaa, lataa se objektina tai maalaa se.
Kyllä sen tuollakin koodilla pitäisi muuttua, koska objectsoverlap ei ole pikselintarkalla.
Ehkä vika on siinä, että auto ei kosketa maalia?
Re: Tyhmät kysymykset (II/2009)
Posted: Mon Aug 03, 2009 11:26 pm
by matti3
Pitäisi koskettaa ja tuohan on tehty data kerroksella. Radan leveys on 5 ruutua joten siinä on 5 saman arvoista data kerrosta.
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 12:08 am
by TheFish
matti3 wrote:Pitäisi koskettaa ja tuohan on tehty data kerroksella. Radan leveys on 5 ruutua joten siinä on 5 saman arvoista data kerrosta.
Ehkä olen vain liian väsynyt, mutta en kyllä näe mitään järkeä tuossa viestissä.
Maaliin törmääminen on tehty objektilla
maali. En tiedä mitä yrität tehdä
maali_data-muuttujalla, mutta et käytä sitä mihinkään tuossa koodinpätkässä. Muutenkaan tuo datakerroksen läpikäyminen ei tee mitään muuta kuin muuttaa
maali_datan arvoa, eli se ei vaikuta
maalin kokoon tai sijaintiin.
Maali objektia ei tuossa sijoiteta mihinkään, tai muuteta sen kokoa mitenkään, joten se on (muistaakseni) 1x1 pikselin kokoinen objekti koordinaateissa (0, 0). Mielestäni on siis melko todennäköistä, että auto ei vain osu
maaliin.
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 2:01 pm
by matti3
Mutta jos teen maali viivan objectilla niinkuin ylempänä näkyy niin kierros vaihtuu, mutta mitään muuta ei sitten tapahdukkaan. Sijoitus ei vaihdu jne. Sijoitus on koko ajan 0 tai 1 vaikka olisin neljäntenä vasta.
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 2:19 pm
by TheFish
matti3 wrote:Mutta jos teen maali viivan objectilla niinkuin ylempänä näkyy niin kierros vaihtuu, mutta mitään muuta ei sitten tapahdukkaan. Sijoitus ei vaihdu jne. Sijoitus on koko ajan 0 tai 1 vaikka olisin neljäntenä vasta.
Millaisella koodilla yrität vaihtaa sijoitusta? Tuossa ylläolevassa sitä ei ainakaan ole mukana.
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 2:37 pm
by matti3
Tällaisella:
Code: Select all
If Distance2(ukko_oma, maali_viiva) < 50 Then
If kierros = 2 Then
lap=lap+1
kierros=1
EndIf
Else
kierros=2
EndIf
If Distance2(ukko, maali_viiva) < 50 Then
If kierros_1 = 2 Then
lap=lap+1
kierros_1=1
EndIf
Else
kierros_1=2
EndIf
If Distance2(ukko_1, maali_viiva) < 50 Then
If kierros_2 = 2 Then
lap=lap+1
kierros_2=1
EndIf
Else
kierros_2=2
EndIf
If Distance2(ukko_2, maali_viiva) < 50 Then
If kierros_3 = 2 Then
lap=lap+1
kierros_3=1
EndIf
Else
kierros_3=2
EndIf
If Distance2(ukko_3, maali_viiva) < 50 Then
If kierros_4 = 2 Then
lap=lap+1
kierros_4=1
EndIf
Else
kierros_4=2
EndIf
If Distance2(ukko_4, maali_viiva) < 50 Then
If kierros_5 = 2 Then
lap=lap+1
kierros_5=1
EndIf
Else
kierros_5=2
EndIf
If lap = 17 Or lap > 16 Then
If Distance2(ukko, maali_viiva) < 50 Then
If kierros_1 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko_1, maali_viiva) < 50 Then
If kierros_2 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko_2, maali_viiva) < 50 Then
If kierros_3 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko_3, maali_viiva) < 50 Then
If kierros_4 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko_4, maali_viiva) < 50 Then
If kierros_5 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko, maali_viiva) < 50 Then
If kierros_6 = 2 Then
sijoitus=sijoitus+1
EndIf
EndIf
If Distance2(ukko_oma, maali_viiva) < 50 Then
If kierros = 2 Then
sijoitus=sijoitus+1
oma_sijoitus=sijoitus
EndIf
EndIf
If sijoitus = 7 Then
lap=4
EndIf
EndIf
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 3:21 pm
by TheFish
matti3 wrote:Tällaisella:
Onko tuo siis samassa projektissa tuon aikaisemman koodin kanssa? Jos on, niin miksi sinulla on objektit
maali_viiva ja
maali? Kuitekin, tarvitsisit tuohon oman
lap-muuttujan (mieluummin taulukolla) jokaiselle ukolle, koska eihän siitä tule kierrosta kaikille jos yksi ylittää maaliviivan.
Tuon saman muuten saisi taulukoilla tehtynä tiivistettyä tähän: (pidin kaiken logiikan samana)
Code: Select all
For i = 0 To 5
If Distance2(ukot(i), maali_viiva) < 50 Then
If kierrokset(i) = 2 Then
If lap < 17 Then
lap = lap + 1
kierrokset(i) = 1
Else
sijoitus = sijoitus + 1
If i = 0 Then
oma_sijoitus = sijoitus
EndIf
EndIf
EndIf
Else
kierrokset(i) = 2
EndIf
Next i
If lap > 16 Then
If sijoitus = 7 Then
lap=4
EndIf
EndIf
ukko_oma -> ukot(0)
...
ukko_4 -> ukot(5)
-------------------------
kierros -> kierrokset(0)
...
kierros_5 -> kierrokset(5)
Vielä sama tuon
laps()-taulukon kanssa
Code: Select all
For i = 0 To 5
If Distance2(ukot(i), maali_viiva) < 50 Then
If kierrokset(i) = 2 Then
If lap(i) < 17 Then
laps(i) = laps(i) + 1
kierrokset(i) = 1
Else
sijoitus = sijoitus + 1
If i = 0 Then
oma_sijoitus = sijoitus
EndIf
EndIf
EndIf
Else
kierrokset(i) = 2
EndIf
Next i
Jätin lopusta tuon "lap = 4" if:in pois, koska en ymmärtänyt sen tarkoitusta/logiikkaa.
Re: Tyhmät kysymykset (II/2009)
Posted: Tue Aug 04, 2009 11:24 pm
by MaGetzUb
Character wrote:Et voi käyttää käyttää SoundPlaying -komentoa LoadSoundin kanssa.
Lataa se näin: biisi = PlaySound(...blaa...)
Voipa käyttää SoundPlayingiä ladatuilla äänillä, tähän tyyliin:
Code: Select all
Sound =LoadSound("Media\sheep.Wav")
kulma = 90
Repeat
If SoundPlaying(Pum) = False Then Pum = PlaySound(Sound) 'Falsen tilalle käy myös 0 tai OFF
//Näitä alempia rivejä ei tarvita, vain erikoistehosteen vuoksi
SetSound Pum,100,Sin(Kulma)*100
Kulma = Kulma + 1
DrawScreen
Forever
Re: Tyhmät kysymykset (II/2009)
Posted: Wed Aug 05, 2009 10:10 am
by matti3[matti3]
Ongelma on siinä, etten muista miten taulukko tehtiin enkä manuaalistakaan löytänyt.