Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Komento on DrawGame.
Kysyn tätä jo toista kertaa, lol:
Pystyykö tilekartan hit-kerroksesta löytämään nurkkia ja risteyksiä automaattisesti?
Kysyn tätä jo toista kertaa, lol:
Pystyykö tilekartan hit-kerroksesta löytämään nurkkia ja risteyksiä automaattisesti?
Re: Tyhmät kysymykset
Ainakaan siihen ei ole mitään valmiita komentoja, mutta eiköhän ne jollakin laskukaavalla pystytä selvittämään, varsinkin jos nurkat ja risteykset ovat säännöllisen muotoisia. Jos olet kehittelemässä jotain reitinhakusysteemiä, luulen että pääset paljon helpommalla kun vain merkkaat risteykset data-kerrokseen.esa94 wrote:Pystyykö tilekartan hit-kerroksesta löytämään nurkkia ja risteyksiä automaattisesti?
-
- Advanced Member
- Posts: 281
- Joined: Sat Jun 28, 2008 5:19 pm
- Location: Hämeessä miä
Re: Tyhmät kysymykset
Miten vois tehä space impact tyylisen ohjauksen että alus liikkuu eteen päin johonkin pisteeseen asti eikä menis sen "yli" ja myös taakse päin samanmoinen.Ylös alas ohjauksen oon jo saanu aikaan,
kun sen tekemiseen nyt ei tartte olla mikään ruudin keksiä.
kun sen tekemiseen nyt ei tartte olla mikään ruudin keksiä.
Re: Tyhmät kysymykset
Kun pelaaja painaa nappia josta alus liikkuu eteenpäin, tarkistat onko alus mennyt rajan yli -> jos on, liikutat takaisin rajan kohdalle. Samaan tyyliin kuin learning centerin ampumis esimerkissä kun tarkastetaan onko ammus menny oranssin neliön ulkopuolelle(, paitsi että et tietenkään poista alusta vaan siirrät takaisin rajan sisälle).Nassi_Setä wrote:Miten vois tehä space impact tyylisen ohjauksen että alus liikkuu eteen päin johonkin pisteeseen asti eikä menis sen "yli" ja myös taakse päin samanmoinen.Ylös alas ohjauksen oon jo saanu aikaan,
kun sen tekemiseen nyt ei tartte olla mikään ruudin keksiä.
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
Ei se vaikeaa ole..
Code: Select all
Alusx = 200
Alusy = 150
Repeat
Alusy = Alusy + 4*(Downkey()-Upkey())
Alusx = Alusx + 4*(Rightkey()-Downkey())
If Alusx => 400 Then Alusx = 400
If Alusx =< 0 then Alusx = 0
If Alusy => 300 Then Alusy = 300
If Alusy =< 0 then Alusy = 0
Box Alusx-10,Alusy-10,20,20
Drawscreen
Forever
EDIT:
En tiiä toimiiko en testannu... Omat jutut ei yleensä toimi.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Tein toisen version siltä varalta, että Programmer of DSG:n esimerkissä on virheitä (Ei toiminut mulla).
EDIT: Rivejä tuli aika vähän B)
Code: Select all
alusx = ScreenWidth()/2-10
alusy = ScreenHeight()/2-10
While True
alusx = alusx + ((RightKey() And alusx < ScreenWidth()-20)-(LeftKey() And alusx>0))*4
alusy = alusy + ((DownKey() And alusy < ScreenHeight()-20)-(UpKey() And alusy>0))*4
Box alusx,alusy,20,20
DrawScreen
Wend
-
- Advanced Member
- Posts: 281
- Joined: Sat Jun 28, 2008 5:19 pm
- Location: Hämeessä miä
Re: Tyhmät kysymykset
kiitoksia ja nyt vähän vaikeempi kysymys:kuinka generoida vihuja jonkun matkan päähän ukkulista sillee että ne ei menis kartan ulkopuolelle ta seinien sisään?
Last edited by Nassi_Setä on Sun Jun 29, 2008 8:55 pm, edited 1 time in total.
Re: Tyhmät kysymykset
Offit eka
Tuosta Grandin koodista muokkaat maailmakoordinaateiksi soveltuvan, Ja sioitat objektin positionobjectilla x-, ja y-koordinaatteihin..
Tuollaisella koodin olen joskus räpeltänyt...
Sanoit tuossa yhdessä topicissa että olet ohjelmoinut 2v? Et varmaan CB:llä...Nassi_Setä wrote:EDIT:
Nyt meni sormi suuhun miten ton boxin tilalle saa ladatun objektin?
Tuosta Grandin koodista muokkaat maailmakoordinaateiksi soveltuvan, Ja sioitat objektin positionobjectilla x-, ja y-koordinaatteihin..
Ei näköjään toimikkaan...Grandi wrote:Tein toisen version siltä varalta, että Programmer of DSG:n esimerkissä on virheitä (Ei toiminut mulla).
Esim näin:Nassi_Setä wrote:kiitoksia ja nyt vähän vaikeempi kysymys:kuinka generoida vihuja jonkun matkan päähän ukkulista sillee että ne ei menis kartan ulkopuolelle ta seinien sisään?
Code: Select all
//Koodia
Kulma = Rand(0,360)//Vihun luontikulma
Vihu.Vihut = New(Vihut)
Vihu\Vihu_Obj = CloneObject(Joku)
PositionObject Vihu\Vihu_Obj,Objectx(omaukko) + cos(Kulma) * 400, ObjectY(omaukko) + cos(Kulma) * 400
For Vihu.Vihut = Each Vihut
If GetMap(0,Objectx(Vihu\Vihu_Obj),ObjectY(Vihu\Vihu_Obj)) = 0 Or GetMap(2,Objectx(Vihu\Vihu_Obj),ObjectY(Vihu\Vihu_Obj)) = 1 then
PositionObject Vihu\Vihu_Obj,Objectx(omaukko) + cos(Rand(360)) * 400, ObjectY(omaukko) + cos(Rand(360)) * 400
Endif
Next Vihu
//Päivitä vihut
Solar Eclipse
We're in a simulation, and God is trying to debug us.
-
- Advanced Member
- Posts: 281
- Joined: Sat Jun 28, 2008 5:19 pm
- Location: Hämeessä miä
Re: Tyhmät kysymykset
juu sain ratkastuu sen boxi objekti jutun noin 30 min viimesimmän viestin lähettämisen jälkee,mut unohin tulla poistaa sen editin.
Ja oon osannu tehä vihuja aika kauan mut en pistää niit paikkoihin sille et ne ei meni esim. seinien sisään
Ja oon osannu tehä vihuja aika kauan mut en pistää niit paikkoihin sille et ne ei meni esim. seinien sisään
Re: Tyhmät kysymykset
Miten saan tiedostosta luettua readintillä luvun muuttujaan, vai saanko mitenkään
programmer of DSG wrote:EDIT:aika hauska peli, vähän tylsä
Re: Tyhmät kysymykset
Vaikka tälläsellä koodilla:Mr_Noob wrote:Miten saan tiedostosta luettua readintillä luvun muuttujaan, vai saanko mitenkään
Code: Select all
f = OpenToRead("file")
muuttuja = ReadInt(f)
CloseFile f
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset
Ohjelma,joka lisäis joka paikkaan,jossa ei ole seinää(eli hit-kerrosta) yhden pallon. Pallot ovat kuvia,koko 32x32.
Tuollaista tarvisin piGManiin,ehkä parhaaseen PacMan-klooniin maailmassa
Tuollaista tarvisin piGManiin,ehkä parhaaseen PacMan-klooniin maailmassa
Huuda mun ip:tä!
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Code: Select all
Type pallo
Field x
Field y
End Type
For x = 0 to MapWidth()
For y = 0 to MapHeight()
If GetMap2(2, x, y) = 0 Then
p.pallo = New(pallo)
p\x = x*tilew + tilew/2 - ImageWidth(pallokuva)/2
p\y = y*tileh + tileh/2 - ImageHeight(pallokuva)/2
EndIf
Next y
Next x
EDIT: pyöreitä lukuja (taas D:), 750. posti.
Re: Tyhmät kysymykset
Kiitos,lähdenpä testailemaan
Sori,mä olen pöljä,mutta miten se pitäs nyt hoitaa.
En vain tajua
Edit:
Oho,Drawtoworld unohtu muttei se toimi siltikään.
Siis tota piirtämistä meinaan.
Sitten ne pitäisi poistaa kun objecti pig on niiden päällä mutta se nyt menee itsekin.
Sori,mä olen pöljä,mutta miten se pitäs nyt hoitaa.
En vain tajua
Edit:
Oho,Drawtoworld unohtu muttei se toimi siltikään.
Siis tota piirtämistä meinaan.
Sitten ne pitäisi poistaa kun objecti pig on niiden päällä mutta se nyt menee itsekin.
Last edited by Olwi on Tue Jul 01, 2008 10:22 pm, edited 2 times in total.
Huuda mun ip:tä!
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Mitä et ymmärrä?
Ihmettelen kyllä, miksi käytät tilekarttoja ja kuvia. Objekteillakin onnistuisi vallan nätisti ja olisi ehkä vähän selkeämpää, ainakin jos on niihin tottunut.
Ihmettelen kyllä, miksi käytät tilekarttoja ja kuvia. Objekteillakin onnistuisi vallan nätisti ja olisi ehkä vähän selkeämpää, ainakin jos on niihin tottunut.
Re: Tyhmät kysymykset
Code: Select all
For x = 0 to MapWidth()
For y = 0 to MapHeight()
If GetMap2(2, x, y) = 0 Then
p.pallo = New(pallo)
p\x = x*tilew + tilew/2 - ImageWidth(pallokuva)/2
p\y = y*tileh + tileh/2 - ImageHeight(pallokuva)/2
DrawImage pallokuva,p\x,p\y
EndIf
Next y
Next x
Ainoa vaikutus on että fps tippuu alle 10
Edit:
Niin ja vain nuo pisteet(pallot) ovat kuvia
Edit
No tietenkin,nehän tulivat kartan alle.
Drawgamen lisäsin,nyt taas fps alle 10 mutta YKSI ainoa pallo näkyy keskellä näyttöä:P
Huuda mun ip:tä!
Re: Tyhmät kysymykset
Nuo for loopit kannattaisi käydä läpi vain kerran alussa ja tallentaa koordinaatit typeen. Sen jälkeen käyt vain sen typen for-each loopilla läpi pääsilmukassa (tai missä ne pitää piirtää) ja piirrät kuvat koordinaatteihin.
Ja tuossa pitää myös huomata että koodaaja jätti muuttujat tileh ja tilew määrittelemättä.
Ja nuo for loopit voi tietysti aloittaa 1:stä eikä 0:sta, koska tilejen numerotkin alkavat 1:stä.
(tuossa koordinaattien laskemisessa voi olla jotain ihmeellisiä logiikka virheitä, mutta se toimii ja tähän aikaan illasta ei jaksa miettiä sen kummempia...)
Ja tuossa pitää myös huomata että koodaaja jätti muuttujat tileh ja tilew määrittelemättä.
Ja nuo for loopit voi tietysti aloittaa 1:stä eikä 0:sta, koska tilejen numerotkin alkavat 1:stä.
Code: Select all
Type pallo
Field x
Field y
End Type
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
pallokuva = LoadImage("media/cow.bmp")
tilew = 32
tileh = 32
For x = 1 to MapWidth()
For y = 1 to MapHeight()
If GetMap2(2, x, y) = 0 Then
p.pallo = New(pallo)
p\x = x*tilew + tilew/2 - ImageWidth(pallokuva)/2 - (MapWidth()*tilew/2+tilew)
p\y = y*tileh + tileh/2 - ImageHeight(pallokuva)/2 - (MapHeight()*tileh/2+tileh)
EndIf
Next y
Next x
Repeat
MoveCamera 0, (UpKey() - DownKey()) * 3
MoveCamera (RightKey() - LeftKey()) * 3
DrawGame
DrawToWorld OFF, ON, OFF
For p.pallo = Each pallo
DrawImage pallokuva, p\x, p\y
Next p
Text 10, 10, "FPS: " + FPS()
DrawScreen
Forever
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Kiitos korjauksesta ja hienosta esimerkistä TheFish, en muistanutkaan että tilenumerointi alkaa ykkösestä 8D
@Olw1: Mikäli et halua kartan ulkopuolelle palluroita, vaihda tämä:
tähän:
@Olw1: Mikäli et halua kartan ulkopuolelle palluroita, vaihda tämä:
Code: Select all
If GetMap2(2, x, y) = 0 Then
Code: Select all
If GetMap2(2, x, y) = 0 And GetMap2(0, x, y)<>0 Then
Re: Tyhmät kysymykset
Hyvinhän tuo toimi,mutta kun laitoin sen gosubin sisään niin lakkas pelittämästä.
Edit
oho,201 viesti,ja TIETENKIN tyhmissä kysymyksissä:)
Code: Select all
kenttäI:
Cls
kartta=LoadMap("media\kenttä1.til","Media\pigman-tileset.jpg")
ShowObject pig,ON
ObjectOrder pig,1
SetupCollision pig,kartta,2,4,2
PositionObject pig,-20,20
For x = 1 to MapWidth()
For y = 1 to MapHeight()
If GetMap2(2, x, y) = 0 Then
p.pallo = New(pallo)
p\x = x*tilew + tilew/2 - ImageWidth(pallokuva)/2 - (MapWidth()*tilew/2+tilew)
p\y = y*tileh + tileh/2 - ImageHeight(pallokuva)/2 - (MapHeight()*tileh/2+tileh)
EndIf
Next y
Next x
While GetMap(3,ObjectX(pig),ObjectY(pig))=1
DrawGame
For p.pallo = Each pallo
DrawImage pallokuva, p\x, p\y
Next p
Wend
Return
Edit
oho,201 viesti,ja TIETENKIN tyhmissä kysymyksissä:)
Huuda mun ip:tä!
Re: Tyhmät kysymykset
Nyt kuvat piiretään vain kerran aliohjelman lopussa. Kokeileppa siirtää tämä pätkä pelin päälooppiin, jossa kontrollit ym. systeemit ovat. Meinaan siis tätä pätkää:
While-loopin ideaa en tajunnut. Kuvia piirretään kun possun alla on datakerrosta? Looppi ei pääse päättymäänkään koska possua ei voi siirtää mihinkään.
(Tuhannes viesti tyhmissä kysymyksissä )
Code: Select all
For p.pallo = Each pallo
DrawImage pallokuva, p\x, p\y
Next p
(Tuhannes viesti tyhmissä kysymyksissä )
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)