Valikko-ongelmia
-
- Newcomer
- Posts: 47
- Joined: Tue Oct 16, 2007 5:28 pm
- Location: Varkaus
- Contact:
Valikko-ongelmia
juu nyt alotinkin sit pienten kysymysten kyselyn kerralla rohkeasti ko en löytäny vastauksia foorumeilta
(oldforums ja tämä) ja kysymys kuuluu:
miten tehdä valikko?
siis tekoäly-, liikkumis- ja musansoitto harjoituksiahan oon tehny jo kauan ja ongelmakseni eteeni tuolta nurkan takaa putkahti
itse susi prkl,
MITEN TEHDÄ VALIKKO
(oldforums ja tämä) ja kysymys kuuluu:
miten tehdä valikko?
siis tekoäly-, liikkumis- ja musansoitto harjoituksiahan oon tehny jo kauan ja ongelmakseni eteeni tuolta nurkan takaa putkahti
itse susi prkl,
MITEN TEHDÄ VALIKKO
Valmiit pelit: 0 muahaha
Projekteina:
Vivarium (beta saattaa tulla lähi-aikoina)
Crusher Bastard (vasta suunnitteluvaiheessa)
Rattijuoppo (Projekti jäässä)
Projekteina:
Vivarium (beta saattaa tulla lähi-aikoina)
Crusher Bastard (vasta suunnitteluvaiheessa)
Rattijuoppo (Projekti jäässä)
Re: Valikko-ongelmia
Löysin esimerkin koodivarastostani ja kommentoin sen.
Code: Select all
SCREEN 400,250 'Säädetään ikkunan kokoa
nappi=LoadObject("media\buttoni.bmp") 'Ladataan the nappi..
hiiri=LoadObject("Media\cursor.bmp") '..ja the hiiri
ShowMouse OFF 'Ei näytetä kauhistuttavaa windowshiirtä
Repeat
PositionObject hiiri,MouseWX(),MouseWY() 'Asetetaan oma hiiremme windowshiiren paikalle
'Jos hiiri ja nappula ovat päällekkäin ja nappia painetaan
'Ohjelma lopetetaan.
If ObjectsOverlap(hiiri,nappi) And MouseHit(1) Then
End
EndIf
DrawScreen 'DrawZcreenzzz
Forever
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Valikko-ongelmia
Funktiot kunniaan. Kommentteja ei ole paljoa mutta se ei toivottavasti haittaa.
Code: Select all
repeat
Button(100,100,100,20,"Pelaa")
Button(100,130,100,20,"Asetukset")
if Button(100,160,100,20,"Poistu") then
end // kun painetaan nappulaa
endif
drawscreen
forever
// x, y koordinaatit
// w,h koko
// t painikkeen teksti
// s painikkeen pyöreys
Function Button(x,y,w,h,t$,s=5)
If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240
If MouseUp(1) Then Return True
Else
Color 200,200,200
EndIf
Box x+s,y,w-(s*2),h
Box x,y+s,w,h-(s*2)
Circle x,y,s*2
Circle x+w-s*2,y,s*2
Circle x+w-s*2,y+h-s*2,s*2
Circle x,y+h-s*2,s*2
Color cbblack
CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
EndFunction
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Valikko-ongelmia
Ehdottomasti, mutta esimerkkiin kyllä ymppäisin myös taulukot vaikka näin:Grandi wrote:Funktiot kunniaan.
Code: Select all
valikkonappuloita = 3
//luodaan nappuloille taulukko jossa toisen ulottuvuus kertoo onko kyseessä
//nappulan nimi (1) vai nappulafunktion palauttama arvo (0)
Dim valikkokohta(valikkonappuloita-1,1) As String
//asetetaan nappuloille nimet, nämähän voidaan toki vaikka ladata ulkoisesta tiedostostakin
valikkokohta(0,1)="Uusi peli"
valikkokohta(1,1)="Asetukset"
valikkokohta(2,1)="Lopeta peli"
Repeat
// tässä päivitetään kaikkien nappuloiden tila, jos nappula on alhaalla niin valikkokohta(i,0)="1" muutoin valikkokohta(i,0)="0"
For i=0 To valikkonappuloita-1
valikkokohta(i,0)=Button(100,100+30*i,100,20,valikkokohta(i,1))
Next i
//jos nappula numero 2 eli lopetus on alhaalla niin lopetetaan
If Int(valikkokohta(2,0)) Then End
DrawScreen
Forever
// x, y koordinaatit
// w,h koko
// t painikkeen teksti
// s painikkeen pyöreys
Function Button(x,y,w,h,t$,s=5)
If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240
If MouseUp(1) Then Return True
Else
Color 200,200,200
EndIf
Box x+s,y,w-(s*2),h
Box x,y+s,w,h-(s*2)
Circle x,y,s*2
Circle x+w-s*2,y,s*2
Circle x+w-s*2,y+h-s*2,s*2
Circle x,y+h-s*2,s*2
Color cbblack
CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
EndFunction
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Valikko-ongelmia
Miten saa sitten niin että kun painan nappia josta peli käynnistyisi että se käynnistäisi vaikka sen exen? ;D
Re: Valikko-ongelmia
Execute "ohjelma.exe"Lexi_ wrote:Miten saa sitten niin että kun painan nappia josta peli käynnistyisi että se käynnistäisi vaikka sen exen? ;D
Jos mietit miten toimii, lue manuaalista
Re: Valikko-ongelmia
Miten saan silleen että kun painan ''Pelaa'' nappia niin peli alkaa eikä käynnisty..
Re: Valikko-ongelmia
Esim. Gotolla.
Re: Valikko-ongelmia
Coolbasicin manuaalista. Kirjoita editoriin "Goto" ja tuplaklikkaa sitä, niin viereinen manuaali pitäisi avautua "Goton" kohdalta.Lexi_ wrote:Mistäs nään miten tuo toimii?
Re: Valikko-ongelmia
Tämmösen ohjeen löysin
ja käytin sitä näin : (sanokaa mikä on pielessä)
Code: Select all
Print "MOI"
GoTo yli
Print "Tätä riviä ei ikinä tulostu."
yli:
Print "Tänne hypättiin!"
WaitKey
ja käytin sitä näin : (sanokaa mikä on pielessä)
Code: Select all
SCREEN 640,480,0,cbfullscreen
Repeat
Button(100,100,100,20,"Pelaa") Then Goto yli
Button(100,130,100,20,"Asetukset")
if Button(100,160,100,20,"Poistu") Then
End // kun painetaan nappulaa
EndIf
DrawScreen
Forever
// x, y koordinaatit
// w,h koko
// t painikkeen teksti
// s painikkeen pyöreys
Function Button(x,y,w,h,t$,s=5)
If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240
If MouseUp(1) Then Return True
Else
Color 200,200,200
EndIf
Box x+s,y,w-(s*2),h
Box x,y+s,w,h-(s*2)
Circle x,y,s*2
Circle x+w-s*2,y,s*2
Circle x+w-s*2,y+h-s*2,s*2
Circle x,y+h-s*2,s*2
Color cbblack
CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
EndFunction
yli:
Const PAINOVOIMA = -0.1
Re: Valikko-ongelmia
Ainakin sinulla puuttui "If" heti repeattia seuraavalla rivillä.. Ja ihan lopussa sinulla on määriteltynä vakio PAINOVOIMA, millä ei näytä olevan mitään tekemistä valikon kanssaLexi_ wrote:Tämmösen ohjeen löysinCode: Select all
Print "MOI" GoTo yli Print "Tätä riviä ei ikinä tulostu." yli: Print "Tänne hypättiin!" WaitKey
ja käytin sitä näin : (sanokaa mikä on pielessä)Code: Select all
SCREEN 640,480,0,cbfullscreen Repeat Button(100,100,100,20,"Pelaa") Then Goto yli Button(100,130,100,20,"Asetukset") if Button(100,160,100,20,"Poistu") Then End // kun painetaan nappulaa EndIf DrawScreen Forever // x, y koordinaatit // w,h koko // t painikkeen teksti // s painikkeen pyöreys Function Button(x,y,w,h,t$,s=5) If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240 If MouseUp(1) Then Return True Else Color 200,200,200 EndIf Box x+s,y,w-(s*2),h Box x,y+s,w,h-(s*2) Circle x,y,s*2 Circle x+w-s*2,y,s*2 Circle x+w-s*2,y+h-s*2,s*2 Circle x,y+h-s*2,s*2 Color cbblack CenterText x+w/2,y+h/2-TextHeight(t)/2,t$ EndFunction yli: Const PAINOVOIMA = -0.1
EDIT:
Varmaankin siis tarkoitti että siitä "peli" alkaa, tulkitsin hieman hätiköiden. Mutta tosiaan if paikoilleen ja hiiren olisi hyvä näkyä ruudulla, niin ei tarvitse sen sijaintia etsiä heiluttelemalla kunnes painikkeet välkkyvät
- Kokkelkhan
- Newcomer
- Posts: 6
- Joined: Tue Mar 15, 2011 9:25 pm
- Location: Pk-seutu
Re: Valikko-ongelmia
Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:
Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...
Code: Select all
MENU: 'Valikon koodi
Repeat
Text 10,10,"Menu"
If Keyhit(CbKeyReturn) Then GoTo LOAD: 'Jos entteriä painetaan -> siirrytään lataus osioon
If Keyhit(1) Then End 'Esc = lopetus
Drawscreen
Forever
LOAD: 'Kuvien & objektien lataus
//Lataus hommelit
GoTo GAME '...jonka jälkeen siirretään suoritus itse peliin
GAME: 'Pelin koodi
Repeat
Text 10,10,"Game"
If Keyhit(2) Then 'Jos '1' näppäintä painetaan...
ClearObjects '-tyhjennetään muisti objekteista (lisää äänille & kuville omat poistot)
GoTo MENU 'ja pompataan valikkoon
Endif
If Keyhit(CbKeySpace) Then GoSub PAUSE 'Välilyönti = suoritus siirtyy PAUSE silmukkaan
Drawscreen
Forever
PAUSE: 'Pause osio, johon voidaan lisätä valikko
Repeat
Text 10,10,"Pause"
Drawscreen
Until KeyHit(CbKeySpace) 'välilyöntiä painetaan...
Return 'suoritus takaisin peliin
Päräjää...!
Re: Valikko-ongelmia
Muuten vaikuttaisi toimivan, mutta syntaksivirhe rivillä 4. Olet menossa labeliin LOAD, et labeliin LOAD:Kokkelkhan wrote:Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...Code: Select all
MENU: 'Valikon koodi Repeat Text 10,10,"Menu" If Keyhit(CbKeyReturn) Then GoTo LOAD: 'Jos entteriä painetaan -> siirrytään lataus osioon If Keyhit(1) Then End 'Esc = lopetus Drawscreen Forever LOAD: 'Kuvien & objektien lataus //Lataus hommelit GoTo GAME '...jonka jälkeen siirretään suoritus itse peliin GAME: 'Pelin koodi Repeat Text 10,10,"Game" If Keyhit(2) Then 'Jos '1' näppäintä painetaan... ClearObjects '-tyhjennetään muisti objekteista (lisää äänille & kuville omat poistot) GoTo MENU 'ja pompataan valikkoon Endif If Keyhit(CbKeySpace) Then GoSub PAUSE 'Välilyönti = suoritus siirtyy PAUSE silmukkaan Drawscreen Forever PAUSE: 'Pause osio, johon voidaan lisätä valikko Repeat Text 10,10,"Pause" Drawscreen Until KeyHit(CbKeySpace) 'välilyöntiä painetaan... Return 'suoritus takaisin peliin
~Yhteiskuntaan kyllästynyt koodari.
-
- Advanced Member
- Posts: 364
- Joined: Wed Dec 03, 2008 3:48 pm
- Location: Turku
Re: Valikko-ongelmia
Katsoppas milloin viimeinen viesti on lähetetty, ennen kuin lähetät uutta, ellei bumppaukselle ole järkevää syytäCombatti wrote:Muuten vaikuttaisi toimivan, mutta syntaksivirhe rivillä 4. Olet menossa labeliin LOAD, et labeliin LOAD:Kokkelkhan wrote:Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...Code: Select all
MENU: 'Valikon koodi Repeat Text 10,10,"Menu" If Keyhit(CbKeyReturn) Then GoTo LOAD: 'Jos entteriä painetaan -> siirrytään lataus osioon If Keyhit(1) Then End 'Esc = lopetus Drawscreen Forever LOAD: 'Kuvien & objektien lataus //Lataus hommelit GoTo GAME '...jonka jälkeen siirretään suoritus itse peliin GAME: 'Pelin koodi Repeat Text 10,10,"Game" If Keyhit(2) Then 'Jos '1' näppäintä painetaan... ClearObjects '-tyhjennetään muisti objekteista (lisää äänille & kuville omat poistot) GoTo MENU 'ja pompataan valikkoon Endif If Keyhit(CbKeySpace) Then GoSub PAUSE 'Välilyönti = suoritus siirtyy PAUSE silmukkaan Drawscreen Forever PAUSE: 'Pause osio, johon voidaan lisätä valikko Repeat Text 10,10,"Pause" Drawscreen Until KeyHit(CbKeySpace) 'välilyöntiä painetaan... Return 'suoritus takaisin peliin
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.
I know not what I know, but I do know that it's not beautiful.
I know not what I know, but I do know that it's not beautiful.
Re: Valikko-ongelmia
Pistetään lukkoon koko ketju ettei harhaudu aiheesta enempää. Jos joku haluaa tämän auki, voi vaikka raportoida tämän mun viestin ylläpidolle (avaamisen perustelu mukaan), niin joku moderaattoreista avaa tämän harkintansa mukaan.
Ja skorppari voi lopettaa sen "moderoinnin". Raportointinappulan painaminen on siistimpi tapa hoitaa asia kuin moderointi ilman oikeuksia.
Ja skorppari voi lopettaa sen "moderoinnin". Raportointinappulan painaminen on siistimpi tapa hoitaa asia kuin moderointi ilman oikeuksia.