Page 14 of 154
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 12:22 pm
by reeperi
No tässä tyhmä kysymys:
Mikä on vikana kun teen ihan treeninä tällästä tasaloikintaa ja koitan saada ukkelin törmäämään mapin HIT kerrokseen, mutta se ei koskaan törmää siihen vaan tippuu pois ruudulta???
Koodi:
Code: Select all
'21.12.2007
FrameLimit 40
Include "cbGravitationPhysics.cb"
'kartan lataus
mappi1= LoadMap ("111.til","Default.bmp")
SetMap mappi1,ON,ON
'ukon lataus
ukko= LoadObject ("ukko.bmp")
MaskObject ukko,255,0,255
PositionObject ukko,10,10
setupCollision ukko,mappi1,1,4,2
Repeat
UpdateGravity(mappi1)
If RightKey() Then MoveObject ukko,2
If LeftKey() Then MoveObject ukko,-2
DrawScreen
Forever
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 1:18 pm
by Jonez
Kyllä se mulla toimii (kun vaihdan median). Oletko varma että sun omassa mapissa todella on hit-kerrokset määritetty?
Code: Select all
'21.12.2007
SCREEN 800, 600
FrameLimit 40
Include "C:\Program Files\CoolBasic\SDK\include\cbGravitationPhysics.cb"
'kartan lataus
mappi1= LoadMap ("media\cdm2.til","media\tileset.bmp")
SetMap mappi1,ON,ON
'ukon lataus
ukko= LoadObject ("media\cow.bmp")
MaskObject ukko, cbBlack
PositionObject ukko,10,10
SetupCollision ukko,mappi1,1,4,2
Repeat
UpdateGravity(mappi1)
If RightKey() Then MoveObject ukko,3
If LeftKey() Then MoveObject ukko,-3
If KeyHit(cbkeyspace) Then jumpObject(ukko, 10)
CloneCameraPosition ukko
DrawScreen
Forever
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 1:24 pm
by reeperi
Kyllä ne mun mielestä pitäis olla.. No, koitan miettiä ongelmaa vielä itsekseni. Kiitos kuitenkin vaivan näöstä!
Muokkaus:
PRKL, se toimii. Häsläsin jotain Tilesterin kanssa ja nyt se toimii!!!!
:D:D
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 1:32 pm
by Quest
Ei ehkä niin tyhmä kysymys, silti: Miten tehdä sellainen windowsista tuttu avaruuden läpilentämis illuusio, joka löytyy tai ainakin löytyi näytönsäästäjänä. Eli pisteet ilmestyvät keskelle ja suurenevat ja leviävät sitten ympärille? Olisin todella kiitollinen jos joku edes antaisi vähän vinkkiä.
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 2:35 pm
by CCE
Luot ruudun keskeltä partikkeleita eri suuntiin.
Jokaisella partikkelilla on x,y ja z arvot, sekä suunta
Z-arvoa kasvatetaan kokoajan, ja mitä enemmän se on, sitä enemmän liikutetaan tähteä sen menosuuntaan kerrallaan.
Jokaisen partikkelin koko riippuu sen z-akselin paikasta, mitä suurempi arvo, sitä suurempi tähti.
Ja luonnollisesti ruudusta ulos kiitävät tähdet poistetaan.
Suunnilleen noin minä sen tekisin.
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 2:40 pm
by regalis
Jos ei halua/osaa tehdä itse sellaista,
RainEnginestä saa vähän modaamalla ihan näppärän "hyperajoefektin".
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 3:31 pm
by Jonez
Tällaisen koodasin itse. Siellä on jopa pieni easter egg mukana
Code: Select all
SCREEN 800, 600
Type STARS
Field x As Float
Field y As Float
Field z As Float
End Type
Dim ps As Float, sx As Float, sy As Float
SCRwidth = ScreenWidth() / 2
SCRheight = ScreenHeight() / 2
max_distance# = 100 //Kuinka kaukaata tähdet näkyvät
scatter# = 200 //Kuinka leveällä alueella tähdet ovat
speed# = 0.1 //nopeus
starSize = 10 //Tähtien koko
starAmount = 100 //tähtien kokonaismäärä
For i = 1 To starAmount
ns.STARS = New(STARS)
ns\x = Rand(-scatter, scatter)
ns\y = Rand(-scatter, scatter)
ns\z = Rand(-max_distance, 0)
Next i
Repeat
//ota seuraava rivi pois käytöstä niin saat ohjelman normaaliksi
speed = speed + 0.02
For is.STARS = Each STARS
is\z = is\z + speed
ps = (1 / is\z) * 100
sx = is\x * ps + SCRwidth
sy = is\y * ps + SCRheight
size = starSize - (is\z / max_distance * -starSize)
If is\z < 0 And is\z > -max_distance Then
Circle sx, sy, size
EndIf
If is\z > 0 Then
Delete is
ns.STARS = New(STARS)
ns\x = Rand(-scatter, scatter)
ns\y = Rand(-scatter, scatter)
ns\z = -max_distance
EndIf
Next is
If speed > 10 Then
Circle 0, 0, SCRwidth + SCRheight / 2
DrawScreen
MakeError "Törmättiin 32.12 -kertaisella valonnopeudella tähteen." + Chr(10) + Chr(13) + "Sen siitä saa kun hurjastelee intergalaktisella moottoritiellä ylinopeutta!"
EndIf
DrawScreen
Forever
Saat ohjelmasta juuri sellaisen kuin halusit (ehkä) poistamalla yhden rivin. Se rivi kerrotaan koodissa.
Re: Tyhmät kysymykset
Posted: Fri Dec 21, 2007 6:29 pm
by Quest
Hehheh, kiitos todella paljon.
Re: Tyhmät kysymykset
Posted: Sat Dec 22, 2007 6:24 pm
by Zrazy_Coder
Oon kysyny tätä ennenkin.Taas se mun Stick Fighter2.0 onkelma.Eli miten mun pitäis tehä se ,että jos vihollinen seisoo mun eessä se mun ukko potkasee ja se osuu vihuun niin vihu menettää esim.10 hp.Oon yrittäny sillei että "Silmä1" niminen objekti laitetaan sen ukko1 pään kohalle ja sillä "silmä1" objektilla on noin 5 asteen näkö ja se silmä aina kääntyy jos ukko kääntyy.Jos "silmä1" näkee vihun ja samalla potkastaan niin on... ja jos on ... ja se osuu vihuun niin vihu menettää hp:tä.Aika epäselvä
Re: Tyhmät kysymykset
Posted: Sat Dec 22, 2007 10:31 pm
by koodaaja
Zrazy_Coder wrote:Oon kysyny tätä ennenkin.Taas se mun Stick Fighter2.0 onkelma.Eli miten mun pitäis tehä se ,että jos vihollinen seisoo mun eessä se mun ukko potkasee ja se osuu vihuun niin vihu menettää esim.10 hp.Oon yrittäny sillei että "Silmä1" niminen objekti laitetaan sen ukko1 pään kohalle ja sillä "silmä1" objektilla on noin 5 asteen näkö ja se silmä aina kääntyy jos ukko kääntyy.Jos "silmä1" näkee vihun ja samalla potkastaan niin on... ja jos on ... ja se osuu vihuun niin vihu menettää hp:tä.Aika epäselvä
Kokeile meneekö potkaisevan jalan animaatio päällekkäin vihun kuvan kanssa. Siis olettaen, että luot uuden objektin animaatiota varten, ja laitat sen ukon alle. ObjectsOverlap voi olla varsin hyödyllinen komento.
Re: Tyhmät kysymykset
Posted: Sun Dec 23, 2007 12:06 pm
by Zrazy_Coder
Öh.Mites saan tarkistettua osuuko vihu jalkaan kun jalka on kiinni UKKO1.
. Ja jos se osuu jalkaan niin se ois sama, kun se osuis siihen UKKO1:seen.tai en vaan tajunnu.Mitä siis tarkotit ?
Re: Tyhmät kysymykset
Posted: Sun Dec 23, 2007 1:30 pm
by koodaaja
Zrazy_Coder wrote:Öh.Mites saan tarkistettua osuuko vihu jalkaan kun jalka on kiinni UKKO1.
. Ja jos se osuu jalkaan niin se ois sama, kun se osuis siihen UKKO1:seen.tai en vaan tajunnu.Mitä siis tarkotit ?
Siis teet erillisen jalkaobjektin potkaisua varten. Tämä tosin on valitettavan purkkaa. Kannattaa mieluummin käyttää kuvia tällaisiin, ei tarvitse kikkailla useiden objektien kanssa ;D
Re: Tyhmät kysymykset
Posted: Mon Dec 24, 2007 5:33 pm
by Zrazy_Coder
Joo, en tee mitään erillaista jalkaobjektia , vaan yritän tehä sillä näkö hommalla sen, että jos Silmä1 näkee Ukko2 ja potkastaan niin päläpälä.Ja jos päläpälä ja se osuu "ukko1" osuu "ukko2":seen niin "ukko2hp"-10.Miten tollanen kannattais tehä, ehkä vähän purkka, mutta se erillinen objekti on vähän outo.
Re: Tyhmät kysymykset
Posted: Tue Dec 25, 2007 2:58 am
by koodaaja
Zrazy_Coder wrote:Joo, en tee mitään erillaista jalkaobjektia , vaan yritän tehä sillä näkö hommalla sen, että jos Silmä1 näkee Ukko2 ja potkastaan niin päläpälä.Ja jos päläpälä ja se osuu "ukko1" osuu "ukko2":seen niin "ukko2hp"-10.Miten tollanen kannattais tehä, ehkä vähän purkka, mutta se erillinen objekti on vähän outo.
Äärimmäisen purkkaahan se on, jos rupeat jotain silmäobjekteja tekemään. Laske mieluummin ihan vaikka geometriaa käyttäen, teet siis jalan kohdalle neliön ja vihun päälle neliön, ja huomaat, että CB tekisi saman yhdellä komennolla ja pikselin tarkkuudella. Ei se erillinen objekti outo ole, esimerkiksi isometrisiä pelejä koostettaessa ainakin itselläni tuppaa grafiikan minimoimiseksi olemaan erikseen pää, vartalo ja kaikki raajat sekä käsissä olevat esineet.
Re: Tyhmät kysymykset
Posted: Tue Dec 25, 2007 9:34 pm
by vilQuri
Miten voin asettaa tilekartan taakse taustan vai pitääkö se pistää suoraan karttaan?
Re: Tyhmät kysymykset
Posted: Tue Dec 25, 2007 9:44 pm
by Harakka
vilQuri wrote:Miten voin asettaa tilekartan taakse taustan vai pitääkö se pistää suoraan karttaan?
Jos tavallinen kuva riittää, piirrä se loopissa ennen DrawGamea (jos käytät kyseistä komentoa).
Re: Tyhmät kysymykset
Posted: Wed Dec 26, 2007 12:26 am
by -Z-
Nyt on paha ongelma, jonka eessä oon aivan neuvotonna. Tässä on koodi (ei tietenkään koko):
Code: Select all
For soldier.DUDE = Each DUDE
For mgrid.MOVEGRID = Each MOVEGRID
If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15 And MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15 Then
End
If MouseHit(1) Then
For i = 1 To 4
mgrid.MOVEGRID = New(MOVEGRID)
mgrid\obj = CloneObject(greengrid)
CloneObjectPosition mgrid\obj, soldier\obj
RotateObject mgrid\obj, rotation
MoveObject mgrid\obj, 30
rotation + 90
Next i
EndIf
If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15 And MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15 Then
If MouseHit(1) Then
CloneObjectPosition soldier\obj, mgrid\obj
For grid.MOVEGRID = Each MOVEGRID
DeleteObject grid\obj
Delete grid
Next grid
Exit
EndIf
EndIf
EndIf
Next mgrid
Next soldier
kun klikkasin sotilasta hiirellä, ei tapahtunut mitään. Tarkistin rivin neljä pikän toimituksen useaan kertaan virheiden varalta. Heittelin endiä sinne tänne saadakseni virherivin selville. Koin yllätyksen, kun pistin endin riville kolme: Ohjelma ei suljennut heti alkaessaan! Mistä kummasta tässä on kyse?
Re: Tyhmät kysymykset
Posted: Wed Dec 26, 2007 1:05 am
by valscion
-Z- wrote:Nyt on paha ongelma, jonka eessä oon aivan neuvotonna. Tässä on koodi (ei tietenkään koko):
kun klikkasin sotilasta hiirellä, ei tapahtunut mitään. Tarkistin rivin neljä pikän toimituksen useaan kertaan virheiden varalta. Heittelin endiä sinne tänne saadakseni virherivin selville. Koin yllätyksen, kun pistin endin riville kolme: Ohjelma ei suljennut heti alkaessaan! Mistä kummasta tässä on kyse?
Ainakin ihan aluksi, virheiden löytämisen helpottamiseksi, lyhennetäänpäs vähän noita If lausekkeita:
Code: Select all
For soldier.DUDE = Each DUDE
For mgrid.MOVEGRID = Each MOVEGRID
If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15
If MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15
End
If MouseHit(1) Then
For i = 1 To 4
mgrid.MOVEGRID = New(MOVEGRID)
mgrid\obj = CloneObject(greengrid)
CloneObjectPosition mgrid\obj, soldier\obj
RotateObject mgrid\obj, rotation
MoveObject mgrid\obj, 30
rotation + 90
Next i
EndIf
If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15
If MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15
If MouseHit(1) Then
CloneObjectPosition soldier\obj, mgrid\obj
For grid.MOVEGRID = Each MOVEGRID
DeleteObject grid\obj
Delete grid
Next grid
Exit
EndIf
EndIf
EndIf
EndIf
EndIf
Next mgrid
Next soldier
Ja nytten päästään sitten tutkailemaan koodia... taisin löytää yhden jännän rivin, edittaan sitten tätä viestiä.
miniedit: Niin joo, tuo End:hän astuu voimaan vasta kun hiiri on tietyssä paikassa, siksi ohjelma ei sammu heti.
EDIT:Muokkasinkin sen virheen jo tuohon koodiin. Koodistasi siis puuttui yksi EndIf, ihmettelen vain miksi parseri ei valittanut mitään. Testaa tuota minun koodiani ja kerro jos ei toimi.
Re: Tyhmät kysymykset
Posted: Fri Dec 28, 2007 9:48 am
by -Z-
Code: Select all
For soldier.DUDE = Each DUDE
For mgrid.MOVEGRID = Each MOVEGRID
If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15 And MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15 Then
If MouseHit(1) Then
For i = 1 To 4
mgrid.MOVEGRID = New(MOVEGRID)
mgrid\obj = CloneObject(greengrid)
CloneObjectPosition mgrid\obj, soldier\obj
RotateObject mgrid\obj, rotation
MoveObject mgrid\obj, 30
rotation + 90
Next i
EndIf
EndIf
If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15 And MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15 Then
If MouseHit(1) Then
CloneObjectPosition soldier\obj, mgrid\obj
For grid.MOVEGRID = Each MOVEGRID
DeleteObject grid\obj
Delete grid
Next grid
Exit
EndIf
EndIf
Next mgrid
Next soldier
Nyt on EndIf:it paikoillaan, ja koodia muutenkin korjailtu, muttei siltikään toimi. End riville kolme = ohjelma rullaa yhä vaikka maailmanloppuun asti. Voisiko joku oikeasti osaava auttaa?
(Yhtään endifiä ei muuten edes puuttunut, yksi oli vain väärässä kohtaa)
Re: Tyhmät kysymykset
Posted: Fri Dec 28, 2007 12:39 pm
by iTKEVAnAKKI
Miksi tulee "Operand type mismatch. You can't perform this mathematical operation to these operands. " Eli yritän laskea jotain? vaikka eihän tuossa tehdä mitään "laitonta"?