Varmaan löytyy kuitenkin ihan näytönohjaimen valmistajan kotisivuilta helpommin tuo tieto.skinkken wrote:Wikipediassa tais lukea ne kaikki.
Tyhmät kysymykset (I/2011)
Re: Tyhmät kysymykset (I/2011)
Re: Tyhmät kysymykset (I/2011)
Kuinka vaihdan icon-kuvakkeen peliini???
Aloittelija koodari joka
KOTISIVU
Re: Tyhmät kysymykset (I/2011)
Foorumien haku toiminnolla.Laurenzo wrote:Kuinka vaihdan icon-kuvakkeen peliini???
Re: Tyhmät kysymykset (I/2011)
Tervehdys taas. Kuinka nuo cbSDK:n 3D-talot saa poistettua uusien tieltä? Kun karttaa vaihtaa ne jäävät sinne möllöttämään. Neuvoa tähän ei SDK:sta itsestään löydy.
EDIT: Kokeilin muuttaa talomuuttujan nollaksi, se ei tee mitään. Taloista voi kuitenkin uudella kartalla juosta läpi.
EDIT2: Tein oman topiikin.
EDIT: Kokeilin muuttaa talomuuttujan nollaksi, se ei tee mitään. Taloista voi kuitenkin uudella kartalla juosta läpi.
EDIT2: Tein oman topiikin.
Last edited by Noun on Thu Aug 18, 2011 4:34 pm, edited 1 time in total.
Re: Tyhmät kysymykset (I/2011)
Hei taas. tuli mieleen kysymys kun olen tehnyt oman kartan omaan peliin ja säätänyt sen fullscreenille niin kartan vasemmalla ja oikealla puolella on mustaa. kysymys kuuluu voiko karttaa siirtää että mustaa aluetta on vai kartan vasemmalla puolella?
Re: Tyhmät kysymykset (I/2011)
Voi. Kartta (jos puhut tilekartasta) on objekti, eli siihen käy lähes kaikki objektikomennot, kuten PositionObject. Helpompi tapa lienee kuitenkin ehkä siirtää kameraa (PositionCamera), koska silloin ei tarvitse liikuttaa kaikkia pelin objekteja erikseen.
Edit. Tällä koodilla saa kameran aloittamaan kartan oikeasta laidasta:
PositionCamera ObjectX( map ) + ObjectSizeX( map ) / 2 - ScreenWidth() / 2, 0
Kannattaa miettiä sen sisältämää matematiikkaa.
Edit. Tällä koodilla saa kameran aloittamaan kartan oikeasta laidasta:
PositionCamera ObjectX( map ) + ObjectSizeX( map ) / 2 - ScreenWidth() / 2, 0
Kannattaa miettiä sen sisältämää matematiikkaa.
Re: Tyhmät kysymykset (I/2011)
gosub komennolla mennään aliohjelmaan ja aliohjelman päättää return käsky
Code: Select all
Repeat
Gosub aliohjelma
DrawScreen
Forever
aliohjelma:
AddText "aliohjelma"
Return
Re: Tyhmät kysymykset (I/2011)
Yritin tehdä textiboxi funktion, miksi se näyttää nollan?
Code: Select all
Repeat
texBox(Testi )
DrawScreen
Forever
Function texbox$ (t$)
Box 30,30,300,30,0
Text 40,30, t
Return t
End Function
...
Re: Tyhmät kysymykset (I/2011)
Koska testi - muuttujalle ei ole annettu arvoa
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (I/2011)
Kokeilin datakerroksen toimimista painovoimaesimerkissä, mutta huonoin lopputuloksin. Miten saisin esimerkin toimimaan niin, että kun pelihahmo on tilessä numero 2 niin peli loppuu?
Code: Select all
Const PAINOVOIMA = -0.1 'painoviman voimakkuus
'pienempi->suurempi pv.
'positiiviset arvot->
'painovoima ylöspäin?!
yPlus#=0 'Tämä hallitsee hyppyä
'Asetetaan ruutu hieman zoomattuun tilaan
SCREEN 320,240,0,cbsizable
SetWindow "Painovoimaesimerkki",3 'suurenna ruudulle
'JOS PELI TÖKKII TAI PÄTKII TAI NYKII, MUUTA:
' 1) cbSizable -> cbFullScreen
' 2) poista rivi 23
FrameLimit 40 'rajoita nopeutta
'-------------------------------------------------
'lataa kartta, siirrä sitä ylöspäin ja animoi se.
kenttä=LoadMap("Media\mappi.til","Media\tilesetti.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5
'lataa animaatiosarja oikealle, maskaa ja piilota se
oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin
'sama vasemmalle
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin
'Tämä on varsinainen pelihahmo, joka piirretään ja
'jota hallitaan. Sille asetetaan törmäys->kartta
'Tätä EI PIILOTETA.
pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51 'tämä pitää asettaa kaikkiin
'-------------------------------------------------
'Pääsilmukka
Repeat
vauhti=0 'oletuksena ei liikettä
If RightKey() Then
'juokse oikealle
PaintObject pelihahmo,oikea 'vaihda kuvaa...
If maassa Then PlayObject pelihahmo,2,11,0.25
vauhti=2 'vauhtia oikealle
ElseIf LeftKey() Then
'juokse vasemmalle
PaintObject pelihahmo,vasen 'vaihda kuvaa...
If maassa Then PlayObject pelihahmo,2,11,0.25
vauhti=-2 'vauhtia vasemmalle
Else
'pysäytä animaatio, jos ei liikuta
PlayObject pelihahmo,0
EndIf
If GetMap(3,ObjectX(pelihahmo),ObjectY(pelihahmo))=2 Then
MakeError "Peli loppu"
EndIf
'liikuta pelihahmoa
TranslateObject pelihahmo,vauhti,yPlus#
yPlus=yPlus+PAINOVOIMA 'päivitä painovoima
UpdateGame 'päivitä törmäys
CloneCameraPosition pelihahmo 'liimaa kamera
maassa=0 'ilmassa jollei toisin käy ilmi
törmäykset=CountCollisions(pelihahmo)
'katsotaan tärmätäänkö kattoon tai lattiaan
For i=1 To törmäykset
If GetCollision(pelihahmo,i)=kenttä
'lattia
If CollisionAngle(pelihahmo,i)=90 Then
yPlus#=-1
maassa=1 'jalat on maassa
EndIf
'katto
If CollisionAngle(pelihahmo,i)=270 Then
yPlus#=-1
EndIf
EndIf
Next i
'jos ollaan ilmassa, näytä toisenlainen kuva
If törmäykset=0 Then PlayObject pelihahmo,12,0
'HYPPY (vain jos jalat maassa)
If KeyHit(cbKeyZ) And maassa Then
yPlus#=4.5 'voimaa ylös päin
EndIf
DrawScreen 'piirrä näyttö
Until EscapeKey()
Re: Tyhmät kysymykset (I/2011)
Koodisi pitäisi toimia. Oletko varma että kartassasi on missään datakerroksessa arvoa 2?
Tässä koodisi (eli Zeron koodi) eri mapilla. Muokkasin mappia riveillä 42 ja 43.
Edit. ja pyydän anteeksi että sanon mappi enkä kartta.
Tässä koodisi (eli Zeron koodi) eri mapilla. Muokkasin mappia riveillä 42 ja 43.
Code: Select all
Const PAINOVOIMA = -0.1 'painoviman voimakkuus
'pienempi->suurempi pv.
'positiiviset arvot->
'painovoima ylöspäin?!
yPlus#=0 'Tämä hallitsee hyppyä
'Asetetaan ruutu hieman zoomattuun tilaan
SCREEN 320,240,0,cbsizable
SetWindow "Painovoimaesimerkki",3 'suurenna ruudulle
'JOS PELI TÖKKII TAI PÄTKII TAI NYKII, MUUTA:
' 1) cbSizable -> cbFullScreen
' 2) poista rivi 23
FrameLimit 40 'rajoita nopeutta
'-------------------------------------------------
'lataa kartta, siirrä sitä ylöspäin ja animoi se.
kenttä=LoadMap("Media\testmap.til","Media\tileset.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5
'lataa animaatiosarja oikealle, maskaa ja piilota se
oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin
'sama vasemmalle
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin
'Tämä on varsinainen pelihahmo, joka piirretään ja
'jota hallitaan. Sille asetetaan törmäys->kartta
'Tätä EI PIILOTETA.
pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51 'tämä pitää asettaa kaikkiin
EditMap kenttä, 3, 7, 10, 2
EditMap kenttä, 0, 7, 10, 1
'-------------------------------------------------
'Pääsilmukka
Repeat
vauhti=0 'oletuksena ei liikettä
If RightKey() Then
'juokse oikealle
PaintObject pelihahmo,oikea 'vaihda kuvaa...
If maassa Then PlayObject pelihahmo,2,11,0.25
vauhti=2 'vauhtia oikealle
ElseIf LeftKey() Then
'juokse vasemmalle
PaintObject pelihahmo,vasen 'vaihda kuvaa...
If maassa Then PlayObject pelihahmo,2,11,0.25
vauhti=-2 'vauhtia vasemmalle
Else
'pysäytä animaatio, jos ei liikuta
PlayObject pelihahmo,0
EndIf
If GetMap(3,ObjectX(pelihahmo),ObjectY(pelihahmo))=2 Then
MakeError "Peli loppu"
EndIf
'liikuta pelihahmoa
TranslateObject pelihahmo,vauhti,yPlus#
yPlus=yPlus+PAINOVOIMA 'päivitä painovoima
UpdateGame 'päivitä törmäys
CloneCameraPosition pelihahmo 'liimaa kamera
maassa=0 'ilmassa jollei toisin käy ilmi
törmäykset=CountCollisions(pelihahmo)
'katsotaan tärmätäänkö kattoon tai lattiaan
For i=1 To törmäykset
If GetCollision(pelihahmo,i)=kenttä
'lattia
If CollisionAngle(pelihahmo,i)=90 Then
yPlus#=-1
maassa=1 'jalat on maassa
EndIf
'katto
If CollisionAngle(pelihahmo,i)=270 Then
yPlus#=-1
EndIf
EndIf
Next i
'jos ollaan ilmassa, näytä toisenlainen kuva
If törmäykset=0 Then PlayObject pelihahmo,12,0
'HYPPY (vain jos jalat maassa)
If KeyHit(cbKeyZ) And maassa Then
yPlus#=4.5 'voimaa ylös päin
EndIf
DrawScreen 'piirrä näyttö
Until EscapeKey()
Re: Tyhmät kysymykset (I/2011)
Nyt huomasin, että koodi toimii, mutta väärin. Siis kartan datakerroksen numerot tuntuvat olevan täysin eri paikoissa, kuin mihin ne laitoin. Mutta kun sitten tarkistin asian karttaeditorilla, niin numerot olivat kuitenkin oikeilla paikoillaan.
Eli siis datakerroksen numerot sijaitsevat kartan alareunassa, ja kun sinne menee, mitään ei tapahdu. Mutta sitten kun menee kartan yläreunaan, niin peli loppuu... ja siellä yläreunassa ei ole datakerroksessa mitään numeroita.
Eli siis datakerroksen numerot sijaitsevat kartan alareunassa, ja kun sinne menee, mitään ei tapahdu. Mutta sitten kun menee kartan yläreunaan, niin peli loppuu... ja siellä yläreunassa ei ole datakerroksessa mitään numeroita.
Re: Tyhmät kysymykset (I/2011)
Miten saan kameran seuraamaan pelihahmoa vain sivuttain, eli kamera ei liiku pystysuunnassa ollenkaan??? Tai sitten voisin laitta esim 10x10 kokoisiin paloihin, joita kamera sitten kuvaisi yksi kerrallaan. Niinkuin VVVVVV:n kamera systeemi.
Re: Tyhmät kysymykset (I/2011)
PositionCamera + ObjectX()Astec wrote:Miten saan kameran seuraamaan pelihahmoa vain sivuttain, eli kamera ei liiku pystysuunnassa ollenkaan??? Tai sitten voisin laitta esim 10x10 kokoisiin paloihin, joita kamera sitten kuvaisi yksi kerrallaan. Niinkuin VVVVVV:n kamera systeemi.
Re: Tyhmät kysymykset (I/2011)
Teen graafista piirto-ohjelmaa, mutta miten saan MouseX() ja MouseY() funktiot kertomaan sijainnin (0,0), kun osoitin on linjaviivojen risteyskohdassa, eikä täysin yläkulmassa.
Vaikeahkoon selitykseen koodit mukaan:
Vaikeahkoon selitykseen koodit mukaan:
Code: Select all
SCREEN 800,600
Repeat
Color cbgreen
Text 700,10,"X: "+MouseX()
Text 700,25,"Y: "+MouseY()
Line 10,10,600,10
Line 10,10,10,500
//Y
Line 10,20,20,20
Line 10,40,20,40
Line 10,60,20,60
Line 10,80,20,80
Line 10,100,30,100
Line 10,120,20,120
Line 10,140,20,140
Line 10,160,20,160
Line 10,180,20,180
Line 10,200,30,200
Line 10,220,20,220
Line 10,240,20,240
Line 10,260,20,260
Line 10,280,20,280
Line 10,300,30,300
Line 10,320,20,320
Line 10,340,20,340
Line 10,360,20,360
Line 10,380,20,380
Line 10,400,30,400
Line 10,420,20,420
Line 10,440,20,440
Line 10,460,20,460
Line 10,480,20,480
Line 10,500,30,500
//X
Line 20,10,20,20
Line 40,10,40,20
Line 60,10,60,20
Line 80,10,80,20
Line 100,10,100,30
Line 120,10,120,20
Line 140,10,140,20
Line 160,10,160,20
Line 180,10,180,20
Line 200,10,200,30
Line 220,10,220,20
Line 240,10,240,20
Line 260,10,260,20
Line 280,10,280,20
Line 300,10,300,30
Line 320,10,320,20
Line 340,10,340,20
Line 360,10,360,20
Line 380,10,380,20
Line 400,10,400,30
Line 420,10,420,20
Line 440,10,440,20
Line 460,10,460,20
Line 480,10,480,20
Line 500,10,500,30
Line 520,10,520,20
Line 540,10,540,20
Line 560,10,560,20
Line 580,10,580,20
Line 600,10,600,30
DrawScreen
Until EscapeKey()
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset (I/2011)
Tuota, vähennät molemmista koordinaateista kymmenen. Silloin kohdasta 10,10 tulee kohta 0,0. Lisäksi koordinaatistoviivat voipi olla näppärämpi piirtää for-loopeilla seuraavankaltaisesti:
[/edit]
Code: Select all
SCREEN 800,600
Repeat
Color cbgreen
Text 700,10,"X: "+int(MouseX()-10)
Text 700,25,"Y: "+int(MouseY()-10)
Line 10,10,600,10
Line 10,10,10,500
For i = 0 To 29
Line 20+i*20,10,20+i*20,20+10*((i+1) Mod 5 = 0)
If i<25 then Line 10,20+i*20,20+10*((i+1) Mod 5 = 0),20+i*20
Next i
DrawScreen
Until EscapeKey()
EDIT:
Huomasinpa tässä vielä hieman koodia katsellessani, että koordinaatiston väli 0-1 on puolta seuraavia pienempi. Lisäksi hiiren koordinaatit ovat pikseleinä eivätkä koordinaatiston yksikköinä. Tässäpä hieman viilailtu versio:
Re: Tyhmät kysymykset (I/2011)
Kiitosta vain. Opin taas jotakin
Edit: Kuinka tuosta sais toimivan?
If MouseX()>30 Then MouseX()="x" - kirjain
Pitääkö MouseX() ja MouseY():lle tehdä omat "muuttujansa" vai voiko toteuttaa näin?
Edit: Kuinka tuosta sais toimivan?
If MouseX()>30 Then MouseX()="x" - kirjain
Pitääkö MouseX() ja MouseY():lle tehdä omat "muuttujansa" vai voiko toteuttaa näin?
Re: Tyhmät kysymykset (I/2011)
No et sinä ainakaan voi funktiolle asettaa arvoa, joten tarvitset uuden muuttujan.ItzRaines wrote:Kiitosta vain. Opin taas jotakin
Edit: Kuinka tuosta sais toimivan?
If MouseX()>30 Then MouseX()="x" - kirjain
Pitääkö MouseX() ja MouseY():lle tehdä omat "muuttujansa" vai voiko toteuttaa näin?