Page 1 of 1
Valikko-ongelmia
Posted: Thu Feb 07, 2008 4:03 pm
by ihannyyppä
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
Re: Valikko-ongelmia
Posted: Thu Feb 07, 2008 4:14 pm
by Pabnih
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
Re: Valikko-ongelmia
Posted: Thu Feb 07, 2008 4:43 pm
by Koodiapina
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
Re: Valikko-ongelmia
Posted: Thu Feb 07, 2008 6:22 pm
by otto90x
Grandi wrote:Funktiot kunniaan.
Ehdottomasti, mutta esimerkkiin kyllä ymppäisin myös taulukot vaikka näin:
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
Re: Valikko-ongelmia
Posted: Sun Aug 14, 2011 10:01 am
by Lexi_
Miten saa sitten niin että kun painan nappia josta peli käynnistyisi että se käynnistäisi vaikka sen exen? ;D
Re: Valikko-ongelmia
Posted: Sun Aug 14, 2011 10:07 am
by axu
Lexi_ wrote:Miten saa sitten niin että kun painan nappia josta peli käynnistyisi että se käynnistäisi vaikka sen exen? ;D
Execute "ohjelma.exe"
Jos mietit miten toimii, lue manuaalista
Re: Valikko-ongelmia
Posted: Wed Jan 18, 2012 6:15 pm
by Lexi_
Miten saan silleen että kun painan ''Pelaa'' nappia niin peli alkaa eikä käynnisty..
Re: Valikko-ongelmia
Posted: Wed Jan 18, 2012 6:16 pm
by Awaclus
Esim. Gotolla.
Re: Valikko-ongelmia
Posted: Wed Jan 18, 2012 6:28 pm
by Lexi_
Mistäs nään miten tuo toimii?
Re: Valikko-ongelmia
Posted: Wed Jan 18, 2012 6:39 pm
by Latexi95
Lexi_ wrote:Mistäs nään miten tuo toimii?
Coolbasicin manuaalista. Kirjoita editoriin "Goto" ja tuplaklikkaa sitä, niin viereinen manuaali pitäisi avautua "Goton" kohdalta.
Re: Valikko-ongelmia
Posted: Wed Jan 18, 2012 6:59 pm
by Lexi_
Tämmösen ohjeen löysin
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
Posted: Wed Jan 18, 2012 7:25 pm
by MrMonday
Lexi_ wrote:Tämmösen ohjeen löysin
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
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 kanssa
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
Re: Valikko-ongelmia
Posted: Mon Jan 23, 2012 5:13 pm
by Kokkelkhan
Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:
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
Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...
Re: Valikko-ongelmia
Posted: Wed Jul 11, 2012 4:57 pm
by Combatti
Kokkelkhan wrote:Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:
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
Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...
Muuten vaikuttaisi toimivan, mutta syntaksivirhe rivillä 4. Olet menossa labeliin LOAD, et labeliin LOAD:
Re: Valikko-ongelmia
Posted: Wed Jul 11, 2012 4:59 pm
by skorpioni-cb
Combatti wrote:Kokkelkhan wrote:Silmukoiden kanssa kikkailu on tosiaan hyvä opetella. Itse toteutan valikko ja pause systeemit jokseenkin tähän tyyliin:
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
Jotenkin näin, en pääse testaamaan juuri nyt mutta pitäisi toimia...
Muuten vaikuttaisi toimivan, mutta syntaksivirhe rivillä 4. Olet menossa labeliin LOAD, et labeliin LOAD:
Katsoppas milloin viimeinen viesti on lähetetty, ennen kuin lähetät uutta, ellei bumppaukselle ole järkevää syytä
Re: Valikko-ongelmia
Posted: Sat Jul 14, 2012 11:19 pm
by Jare
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.