Code: Select all
ClsColor 255,255,255
Color 0,0,0
Repeat
Text 120,0, "Heitetään kolikkoa"
klaava = klaava + Rand(1)
kaikki = kaikki + 1
Text 10,30, "Kruuna: "+(kaikki-klaava)
Text 10,50, "Klaava: "+klaava
DrawScreen
Forever
Code: Select all
ClsColor 255,255,255
Color 0,0,0
Repeat
Text 120,0, "Heitetään kolikkoa"
klaava = klaava + Rand(1)
kaikki = kaikki + 1
Text 10,30, "Kruuna: "+(kaikki-klaava)
Text 10,50, "Klaava: "+klaava
DrawScreen
Forever
Code: Select all
ClsColor 255,255,255
Color 0,0,0
Repeat
Text 120,0, "Heitetään kolikkoa"
klaava = klaava + Rand(1)
kaikki = kaikki + 1
Text 10,30, "Kruuna: "+(kaikki-klaava)
Text 10,50, "Klaava: "+klaava
Text 10,100,"kaikki heitot: "+kaikki
DrawScreen
If KeyHit (cbkeyreturn) Then
WaitKey
EndIf
Forever
Code: Select all
ClsColor 255,255,255
Color 0,0,0
Repeat
Text 120,0, "Heitetään kolikkoa"
klaava = klaava + Rand(0,1)
kaikki = kaikki +1
Text 10,30, "Kruuna: "+(kaikki-klaava)
Text 10,50, "Klaava: "+klaava
Text 10,100,"kaikki heitot: "+kaikki
DrawScreen
If KeyHit (cbkeyreturn) Then
WaitKey
EndIf
Forever
Ei CoolBasicissa; jos annetaan vain yksi parametri, toinen on automaattisesti nolla. Sekoitat varmaan johonkin muuhun kieleen, kuten PHP:hen.nevssons wrote:Rand komennossa täytyy antaa kaksi lukua. pienin ja suurin mahdollinen.
Code: Select all
SCREEN 1024, 768
FrameLimit 30
bullet_img= LoadImage( "media\bullet.bmp" )
maasto = MakeImage(ScreenWidth(),100)
muta = MakeImage(1,1)
DrawToImage muta
Color 123,90,0:Box 0,0,1,1
DrawToImage maasto
Color cbgreen: Box 0,0,ScreenWidth(),100
DrawToScreen
maastox=0 : maastoy=500
painovoima#=0.2
Repeat
If ammuselossa=OFF Then
Placex#=MouseX()
Placey#=400
If MouseUp(1)Then ammuselossa=ON
EndIf
If ammuselossa=ON Then
speed#=speed#+PAINOVOIMA#
placeY#=placeY#+speed#
If ImagesCollide(bullet_img,placeX#,placeY#,0,maasto,maastox,maastoy,0)>0 Then
DrawToImage maasto
Color cbblack : koko=30 : Circle placeX#-koko/2,placeY#-maastoY-koko/2,koko,1
DrawToScreen
// PARTIKKELIROSKA
Particle_muta = MakeEmitter(muta,30)
ScreenPositionObject Particle_muta,placeX#,placeY#
RotateObject Particle_muta,90
ObjectLife Particle_muta,20
ParticleMovement Particle_muta,Rand(speed#+1,speed#),painovoima,Rnd(0.8,1)
ParticleEmission Particle_muta,10,20,100
ammuselossa=OFF: placeY#=0:speed#=0
EndIf
EndIf
DrawImage maasto,maastox,maastoy
DrawImage bullet_img,placeX#,placeY#
DrawScreen
Until EscapeKey()
Code: Select all
Repeat
If Timer()>aika+1000 Then
y=y+15
Line 10,y,100,y
aika=Timer()
EndIf
DrawScreen OFF
Forever
piirrät esim. Kuvan joka on tie ja kuvan joka on maasto. Jos imagecollisions tie <1 sitten auto ei ole radalla..Tuoppi wrote:Kuinka saan ohjelman tunnistamaan onko auto radalla vai ei? Siis kuvilla tai objekteilla ei tileillä.
Tossa yksinkertanen esimerkki. En ehtinyt selostaa toimenpiteitä, mutta toivottavasti ymmärrät ilmankin.Tuoppi wrote:Kuinka saan ohjelman tunnistamaan onko auto radalla vai ei? Siis kuvilla tai objekteilla ei tileillä.
Code: Select all
SCREEN 800,600
car=LoadImage("media\car2.bmp")
rata=MakeImage(ScreenWidth(),ScreenHeight())
kentta=MakeImage(ScreenWidth(),ScreenHeight())
DrawToImage rata
Color cbsilver:Box 50,50,700,500
Color cbblack:Box 300,300,300,200
DrawToImage kentta
Color cbgreen:Box 0,0,ScreenWidth(),ScreenHeight()
DrawToScreen
kenttax=0 : kenttay=0
paikkax=200 : paikkay=150
Repeat
If DownKey() And ImagesCollide(car,paikkax,paikkay+25,0,rata,kenttax,kenttay,0)=1 Then paikkay+3
If RightKey()And ImagesCollide(car,paikkax+33,paikkay,0,rata,kenttax,kenttay,0)=1 Then paikkax+3
If UpKey() And ImagesCollide(car,paikkax,paikkay-25,0,rata,kenttax,kenttay,0)=1 Then paikkay-3
If LeftKey() And ImagesCollide(car,paikkax-33,paikkay,0,rata,kenttax,kenttay,0)=1 Then paikkax-3
DrawImage kentta,kenttax,kenttay
DrawImage rata,kenttax,kenttay
DrawImage car,paikkax,paikkay
DrawScreen
Until EscapeKey()
Printillä ja Addtextillä on se ero että Addtext säilyy Drawscreenissä.MAVmaggot wrote:En ymmärrä kyllä mitä eroa printillä ja addtextillä on tässä tapauksessa on. Jos ei teksti pysy kameran mukana tarkista ettet ole kirjoittanut DrawToWorld On, On, On. Se piirtää tekstin(,piirtokomennot ja kuvat) maailman koordinaatteihin, eli teksti menee pelikenttään.
nevssons wrote:Miten saisi kameran seuraamaan tekstiä addtext:issä samalla tavalla kuin printissä?
Joudut koodaamaan oman systeemin, ja tuo toimisi parhaiten Text komennolla. Tässä pieni esimerkki sitä käyttäen:nevssons wrote:Miten saisi kameran seuraamaan tekstiä addtext:issä samalla tavalla kuin printissä?
Code: Select all
Type _Text
Field Id
Field Con$
EndType
Global GlobalId
While 1
ListTexts()
i = i + 1
AddText2(i)
DrawScreen
Wend
Function AddText2(Con$)
_t._Text = New(_Text)
_t\Con = Con
_t\Id = GlobalId + 1
GlobalId = GlobalID + 1
EndFunction
Function ListTexts()
las._Text = Last(_Text)
For _t._Text = Each _Text
If _t\Id > las\Id - (ScreenHeight()/TextHeight("|")) Then
If Pla < (ScreenHeight()/TextHeight("|")) Then
Text 0,Pla*TextHeight("|"),_t\Con
EndIf
Pla = Pla + 1
EndIf
Next _t
EndFunction
Code: Select all
SCREEN 500,300
Font=LoadFont("Arial",16)
SetFont Font
ChDir "C:\"
Repeat
IP$=Input(CurrentDir())
If KeyUp(28) Then
CloseInput
AddText CurrentDir()+IP$
Select Lower(GetWord(IP$,1))
Case "help"
AddText ""
AddText " Quit Sulkee ohjelman"
AddText " Dir Kertoo kansion sisallon"
AddText " Time Nayttaa paivamaaran ja kellonajan"
AddText " ChDir <polku> Vaihtaa hakemistoa"
AddText ""
Case "chdir"
ChDir GetWord(IP$,2)
Case "quit"
End
Case "time"
AddText ""
AddText " Date: "+Date()
AddText " Time: "+Time()
AddText ""
Case "dir"
AddText ""
StartSearch
count=0
Repeat
file$=FindFile()
If file$="" Then Exit
AddText " "+file$
count+1
DrawScreen
Forever
EndSearch
AddText ""
AddText " "count+" Tiedostoa\kansiota"
AddText ""
Default
AddText ""
AddText " Komentoa "+GetWord(IP$,1)+" ei ole olemassa"
AddText ""
End Select
EndIf
DrawScreen
Forever
Code: Select all
SCREEN 640,480,32,0
Type sline
Field scon$
Field gtype
Field sinp
EndType
ClsColor 0,0,208
ClsColor 0,0,0
fnt = LoadFont("lucida console",14,1)
SetFont fnt
NewMsg("")
NewMsg("")
NewMsg("")
NewMsg(" Joku systeemi 4.9")
NewMsg(" Pelaako? %sys.status")
NewMsg("")
NewMsg("")
NewMsg(" KOMENNOT:")
NewMsg("")
NewMsg(" kirjoita <teksti>")
NewMsg(" hakemisto -listaa (Parametri on valinnainen)")
NewMsg(" poista <tiedosto>")
NewMsg("")
NewMsg("")
curdir$ = "kavijat/jotain"
Global inputs$
status$ = "vieras.SYSTEEMI"
Dim cmark$
While True
If Timer()>markt+200 Then
Select n
Case 0:cmark="|"
Case 1:cmark="/"
Case 2:cmark="-"
Case 3:cmark="\"
EndSelect
n = n + 1
If n>3 Then n=0
markt = Timer()
EndIf
Locate -100,-100
inputs = Input("")
For sl.sline = Each sline
Color 255,255,255
If InStr(sl\scon,status) Then Color 127,255,0
If InStr(sl\scon,"VIRHE:") Then Color 255,0,0
If InStr(sl\scon,"VAROITUS:") Then Color 255,255,0
printings$ = Replace(sl\scon,"%sys.status",cmark)
If sy>(readpoint-1) And sy<(readpoint+28) Then
Text 10,10+(ny*16),printings
ny = ny + 1
EndIf
lastwidth = TextWidth(printings)
sy = sy + 1
Next sl
ny = ny + 1
Color 255,255,255
Text 10,10+(ny-1)*16,status+": "+inputs
Color 127,255,0
Box TextWidth(status+": "+inputs)+10,10+(ny-1)*16-1,8,14,1
If sy > readpoint+28 Then readpoint = sy-28
sy = 0
ny = 0
If KeyHit(cbkeyreturn) Then
dont = 0
NewMsg(status+": "+inputs)
If GetCode("kirjoita") Then
NewMsg(GetWord(inputs,2))
ElseIf GetCode("hakemisto")
NewMsg("")
NewMsg(curdir)
If GetCode("-listaa") Then
NewMsg("")
NewMsg(" Size Name")
NewMsg("")
StartSearch
While True
msg$ = " "
tfil$ = FindFile()
If tfil="" Then Exit
msg = msg + FileSize(tfil)
For a = 0 To (7-Len(Str(FileSize(tfil))))
msg = msg + " "
Next a
msg = msg + " "
msg = msg + tfil
If IsDirectory(tfil) And tfil<>"." And tfil<>".." Then
msg = msg + "/"
EndIf
NewMsg(msg)
Wend
EndSearch
EndIf
NewMsg("")
// Poistaa vain tiedostoja
ElseIf GetCode("poista")
If FileExists(GetWord(inputs,2)) Then
DeleteFile GetWord(inputs,2)
Else
NewMsg("VIRHE: Tiedostoa"+" ei löytynyt!")
EndIf
EndIf
CloseInput()
ClearKeys()
EndIf
DrawScreen
Wend
Function NewMsg(con$,gtyp=0)
sl.sline = New(sline)
sl\scon = con
sl\gtype = gtyp
lasts = sl\scon
EndFunction
Function GetCode(code$)
Return InStr(Lower(inputs),Lower(code))
EndFunction
Code: Select all
Const rivimäärä = 18
Dim rivit(rivimäärä) As String
Global käytetyt
//ohjelma tähän
Function Rivi(txt$)
If käytetyt=rivimäärä Then
ClearText
For f=1 To rivimäärä-1
rivit(f)=rivit(f+1)
AddText rivit(f)
Next f
käytetyt-1
EndIf
käytetyt+1
rivit(käytetyt)=txt$
AddText txt$
EndFunction
Ymmärsit varmaan perjaatteen? Tuo on vastaus alkuperäiseen kysymykseeni.