Code: Select all
For alus
For raketti
If raketti osuu alukseen Then alus\rakettiosunut = True
Next
Next
For alus
If alus\rakettiosunut Then PositionObject alus, hiirenkoordinaatit: TurnObject alus, 7
Next
Code: Select all
For alus
For raketti
If raketti osuu alukseen Then alus\rakettiosunut = True
Next
Next
For alus
If alus\rakettiosunut Then PositionObject alus, hiirenkoordinaatit: TurnObject alus, 7
Next
Kutakuinkin.Chaosworm wrote:Siis tarkoititko tällaista systeemiä:
Code: Select all
For alus For raketti If raketti osuu alukseen Then alus\rakettiosunut = True Next Next For alus If alus\rakettiosunut Then PositionObject alus, hiirenkoordinaatit: TurnObject alus, 7 Next
skorpioni-cb wrote:siis raketti menee vihollisen läpi joka on sinisessä rinkulaassa joka on niin kuin pitääkin, mutta se ei tule hiiren kohdalle ja pyöri niin kuin pitäisi. Te ette vastanneet olennaiseen
Code: Select all
PositionObject lVihu\obj,ObjectX(h),ObjectY(h)
Jaa, oli vielä seurava sivukin. Mutta siis tuohan ainakin ilmeisesti oli tarkistuksessa jossa tarkistetaan ammuksten törmäys, ja tuollainen siellä oli.
Tuohan ei aseta sitä hiiren kohdalle.
Code: Select all
FrameLimit 40
ääniAmmu = LoadSound ("Media\blaster.wav")
ääniAmmu2 = LoadSound ("Media\pop.wav")
ruoho = MakeObjectFloor ()
nurmikko = LoadImage ("Media\grass.bmp")
PaintObject ruoho, nurmikko
ukko1 = LoadObject ("Media\soldier.bmp",72)
ukko2 = LoadObject ("Media\guy.bmp",72)
pati = LoadObject ("Media\fireball.bmp")
pati2 = LoadObject ("Media\bullet.bmp")
RotateObject ukko1,0
RotateObject ukko2,180
PositionObject ukko1,-150,100
PositionObject ukko2,150,-100
SetupCollision ukko1,ukko2,2,2,2
SetupCollision ukko2,ukko1,2,2,2
Repeat
If LeftKey() Then TurnObject ukko1,5
If RightKey() Then TurnObject ukko1,-5
If UpKey() Then MoveObject ukko1,2
If DownKey() Then MoveObject ukko1,-2
If KeyDown(cbKeyA) Then TurnObject ukko2,5
If KeyDown(cbKeyD) Then TurnObject ukko2,-5
If KeyDown(cbKeyW) Then MoveObject ukko2,2
If KeyDown(cbKeyS) Then MoveObject ukko2,-2
If ObjectX(ukko1)<-200 Then PositionObject ukko1,-200,ObjectY(ukko1)
If ObjectX(ukko1)>200 Then PositionObject ukko1,200,ObjectY(ukko1)
If ObjectY(ukko1)<-150 Then PositionObject ukko1,ObjectX(ukko1),-150
If ObjectY(ukko1)>150 Then PositionObject ukko1,ObjectX(ukko1),150
If ObjectX(ukko2)<-200 Then PositionObject ukko2,-200,ObjectY(ukko2)
If ObjectX(ukko2)>200 Then PositionObject ukko2,200,ObjectY(ukko2)
If ObjectY(ukko2)<-150 Then PositionObject ukko2,ObjectX(ukko2),-150
If ObjectY(ukko2)>150 Then PositionObject ukko2,ObjectX(ukko2),150
DrawScreen
Forever
Code: Select all
alku:
Color cbWhite
Repeat
nimi$=Input("Nimesi: ")
DrawScreen
Until KeyHit(cbkeyreturn)
CloseInput
Cls
Repeat
nimi2$=Input("Rakkaasi nimi: ")
DrawScreen
Until KeyHit(cbkeyreturn)
CloseInput
Cls
love=Rand (0,100)
Repeat
If 25<love<50 Then Color cbDarkRed
If love<25 Then Color cbDark
If 50<love<75 Then Color cbMagenta
If 75<love Then Color cbPink
Text 10, 10, "Tulos: "+nimi$+" SYDÄN "+nimi2$+"="+love+"%"
Text 10, 20, "Uudestaan? Paina Välilyöntiä."
Text 10, 30, "Lopeta? Paina ESC"
If KeyHit (cbKeyspace) Then Goto alku
DrawScreen
Forever
Ensinnäkin tulokset kannattaa tallentaa joko taulukkoon tai tyyppikokoelmaan, sitten ne pitää järjestää suuruusjärjestykseen (tämä on aika vaikea). Tallennus tiedostoon on helppoa komennoilla opentowrite, writeline ja closefile, kunhan muistat vain lukea tiedot komennoilla opentoread ja readline samassa järjestyksessa kuin kirjoititkin. Tein esimerkin tästä, kun nämä top-10 listat tuottavat niin monille harmaita hiuksia.The TK wrote:Kysymys kuuluu: Miten saan tallennettua "huipputulokset" tiedostoon ja näyttämään 10 korkeinta suuruusjärjestyksessä?
Code: Select all
lataus_teksti=Rand(1,3)
If lataus_teksti=1 Then
AddText "AAA"
DrawScreen
EndIf
If lataus_teksti=2 Then
AddText "BBB"
DrawScreen
EndIf
If lataus_teksti=3 Then
AddText "CCC"
DrawScreen
EndIf
Voisit kirjoittaa eri lataustekstit tiedostoon ja pelin käynnistyessä lukea ne sieltä taulukkoon ReadLine-funktiolla. Sitten vain arvot numeron ja näytät lautaustekstin, joka sijaitsee numeron osoittamassa taulukon indeksissä.Hene wrote:Onko mitään sivistyneempää tapaa toteuttaa samaa ideaa?
Code: Select all
Repeat
tähti$=String("* ",Rand(20))//monistetaan Max. 20:stä tähdestä koostuva String
lukumäärä=CountWords(tähti)//ja kun joka tähti ON erotettu erotinmerkillä, ON niiden laskeminen helppoa
Print tähti
Print "Lukumäärä: "+lukumäärä
WaitKey
Until EscapeKey()
No vaikka tämä, käytetään erotinmerkkinä tähteä itseään:Feuer wrote:Toteuttaisin tuon CountWords()llä, mutta se vaatisi erotinmerkkien lisäyksen:Parempia ideoita?
Code: Select all
Repeat
tähti$=String("*",Rand(20))//monistetaan Max. 20:stä tähdestä koostuva String
lukumäärä=CountWords(tähti, "*")// lasketaan tähtien määrä ;)
if lukumäärä>0 Then lukumäärä-1 // korjataan luku oikeaksi, muuten olisi yksi liikaa.
Print tähti
Print "Lukumäärä: "+lukumäärä
WaitKey
Until EscapeKey()
Code: Select all
merkkijono$ = "asdad**fasf**sdfwefm**lollolo*rofl***cdxsd**..."
For i = 1 To Len(merkkijono$)
If Mid(merkkijono$,i,1) = "*" Then tähti_maara + 1
Next i
Text 0,0,"Tähtiä: "+tähti_maara
DrawScreen
WaitKey
Code: Select all
PIX = GetPixel2(...)
PIX = MaaginenMahtavaAlgoritmi
PutPixel2 ...,...,PIX
Code: Select all
//luodaan muistipala neljälle muistipalalle
rakenne = makememblock(16)
for i=0 to memblocksize(rakenne)-1 step 4
lista = makememblock(16)
//luodaan muistipalaan neljä satunnaista lukua
for o=0 to memblocksize(lista)-1 step 4
pokeint lista,o,rand(100)
next o
//laitetaan muistipalaan toisen muistipalan osoite
pokeint rakenne,i,lista
next i
//tulostus
for i=0 to memblocksize(rakenne)-1 step 4
lista = peekint(rakenne,i)
print "muistipala @ "+lista+" sisältää seuraavat luvut:"
if lista then
for o=0 to memblocksize(lista)-1 step 4
print peekint(lista,o)
next o
endif
next i
waitkey
En tähän hätään keksi nopeampaa, korjatkaa joku, jos tiedätte paremmanRuuttu wrote:Hei, onko mitään nopeata tapaa ottaa pikseliarvo, ja puolittaa sen kirkkaus? Vai onko pakko ensin muuttaa pikseliarvo RGB:ksi, sitten tehdä muutos, ja sitten taas muuttaa takaisin pikseliarvoksi?
Code: Select all
PIX = GetPixel2(...) PIX = MaaginenMahtavaAlgoritmi PutPixel2 ...,...,PIX
Code: Select all
a = (pix Shr 24) Shl 24 //Pelkkä 255 Shl 24 saattaisi myös ehkä toimia, sillä CBhän ei tunnetusti käytä alfakanavaa.
r = ((pix - a) Shr 17) Shl 16
g = ((pix - a - r) Shr 9) Shl 8
b = (pix - a - r - g) Shr 1
pix = a + r + g + b