Olet varmaan luonut aikaisemmin objekteja, joita et ole muistanut poistaa DeleteObjectilla. Nämä objektit ovat sitten jääneet "zombeiksi" niin, ettet pääse niihin oikein enää kunnolla käsiksi.beginner wrote:Ei se oikein toimikaan...Nyt jokaiseen data-kerrokseen merkittyyn paikkaan kyllä ilmestyy vihu-objekti, mutta kun pääsilmukkaan laittaa esimerkiksi:Niin kaikki muut vihut pysyvät paikallaan, paitsi tuon alkuperäisen "skannauksen" viimeisten koordinaattien kohdalta lähtee liikkeelle 16 vihulaisen jono. Mitähän ne 15 muuta paikoillaan pysyvää objektia sitten ovat? VIHUT() taulokossa on nimittäin vain tuo 16 solua.Code: Select all
For a=1 To 16 MoveObject VIHUT(a),Rand(1,2) Next a
Tyhmät kysymykset (I/2012)
Re: Tyhmät kysymykset (I/2011)
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 (I/2011)
Mutta kun objekteja luodaan vain tuolla aiemmin mainitulla koodinpätkällä. Saavatkohan nuo sisäkkäiset for-silmukat aikaan sen, että jokaiseen data-kerrokseen merkittyyn kohtaan luodaan 16 objektia? Joista sitten vain nuo viimeiset 16 jäävät "eloon"?
Re: Tyhmät kysymykset (I/2011)
Joo itse asiassa näinhän se on. Et tarvitse sitä sisäkkäisintä for-looppia, vaan sinun täytyy vain pitää huolta että sitä i-muuttujaa kasvatetaan aina objektin luonnin jälkeen. Siis tältä koodisi tulisi näyttää:beginner wrote:Mutta kun objekteja luodaan vain tuolla aiemmin mainitulla koodinpätkällä. Saavatkohan nuo sisäkkäiset for-silmukat aikaan sen, että jokaiseen data-kerrokseen merkittyyn kohtaan luodaan 16 objektia? Joista sitten vain nuo viimeiset 16 jäävät "eloon"?
Code: Select all
i = 1
For x=1 To MapWidth()
For y=1 To MapHeight()
If GetMap2(3,x,y)=10 Then
VIHUTx(i)=(x * 32 -ObjectSizeX(kartta) / 2)
VIHUTy(i)=-(y * 32 - ObjectSizeY(kartta) / 2)
VIHUT(i)=CloneObject (v)
PositionObject VIHUT(i),VIHUTx(i),VIHUTy(i)
VIHUTELOSSA(i)=1
i = i + 1
EndIf
Next y
Next x
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
-
- Advanced Member
- Posts: 364
- Joined: Wed Dec 03, 2008 3:48 pm
- Location: Turku
Re: Tyhmät kysymykset (I/2011)
Tää on varmaan aika advanced-kysymys, mutta kysympä kuitenkin, kuinka voin manipuloida byte-muuttujan bittejä, attelin tehä kato gif-kuvan kirjoittajan, jotta voin piilottaa jotain inhormaatiota kuvaan. Onko mitään hajua miten tämä tehdään.
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.
I know not what I know, but I do know that it's not beautiful.
I know not what I know, but I do know that it's not beautiful.
Re: Tyhmät kysymykset (I/2011)
Tavuhan on 8 bitin setti ykkösiä ja nollia. Komennoilla shl, shr ja sar voit tehdä binäärisiirtoja luvuille. Esimerkiksi 1 SHL 2 vastaisi lukua 4 eli kun 0000 0001 siirretään kaksi kertaa vasemmalle saadaan 0000 0100 eli 4. Eli voit muodostaa joka tavun siten että summaat a(1) shl 8 + a(2) shl 7 + ... + a(7) shl 1 + a(8) shl 0 jos a on kahdeksan alkion mittainen 0 tai 1 numeron sisältävä taulukko. Tavun n:nnen arvon saa sitten selville siirtämällä bittejä siten yli molemmilta puolilta että ylimääräiset karsiutuu pois. En oo aivan varma käyttääkö cb kahden komplementtia mutta se varmaan selvenee jos tarkemmin alkaa tutkimaan.skorpioni-cb wrote:Tää on varmaan aika advanced-kysymys, mutta kysympä kuitenkin, kuinka voin manipuloida byte-muuttujan bittejä, attelin tehä kato gif-kuvan kirjoittajan, jotta voin piilottaa jotain inhormaatiota kuvaan. Onko mitään hajua miten tämä tehdään.
Re: Tyhmät kysymykset (I/2011)
EDIT:
Hei, aloitin tänään perehtymisen Jaren cbAStar-reitinhakukirjastoon, ja ongelmia ilmeni heti alku metreillä. Eli saan virheilmoituksen "Can't read from negative array index.", kun CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),Mouse()Y):in joku arvoista on negatiivinen. Eli jos objektin tai hiiren sijainti on funktiota kutsuttaessa alle nollan kummallakaan akselilla. Selkeä siis sinänsä, mutta sitä lähinnä kysyisin, että mikäli CalculatePath()-funktio ei huoli arvoltaan negatiivisia parametrejä, niin mikä olisi helpoin/järkevin tapa toteuttaa em. funktiolle kelpaavat parametrit? Kiitos jo etukäteen kaikille Anteeksi, nyt oli oma moka, olisin toki voinut katsoa hieman tarkemmin esimerkin ja plärätä dokumentaatiota, niin tämä olisi selvinnyt heti. Ehkäpä ensi kerralla perehdyn paremmin, niin ei tarvitse turhaa kysellä tyhmiä
Code: Select all
If MouseUp(1) Then
path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY())
EndIf
Last edited by MrMonday on Sat May 19, 2012 12:42 am, edited 1 time in total.
-
- Advanced Member
- Posts: 364
- Joined: Wed Dec 03, 2008 3:48 pm
- Location: Turku
Re: Tyhmät kysymykset (I/2011)
ÄIJÄIJÄI EI MAAILMAKOORDINAATTEJA OBJEKTILLE.MrMonday wrote:Hei, aloitin tänään perehtymisen Jaren cbAStar-reitinhakukirjastoon, ja ongelmia ilmeni heti alku metreillä. Eli saan virheilmoituksen "Can't read from negative array index.", kun CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),Mouse()Y):in joku arvoista on negatiivinen. Eli jos objektin tai hiiren sijainti on funktiota kutsuttaessa alle nollan kummallakaan akselilla. Selkeä siis sinänsä, mutta sitä lähinnä kysyisin, että mikäli CalculatePath()-funktio ei huoli arvoltaan negatiivisia parametrejä, niin mikä olisi helpoin/järkevin tapa toteuttaa em. funktiolle kelpaavat parametrit? Kiitos jo etukäteen kaikille
OffTopic: Ajattelin jatkaa sittemmin jäätynyttä Discord-peliäni, ja tahdon siihen ehdottomasti hiiriohjauksen (ja muitakin toimintoja myös hiirelle), ja siksi siis olen kiinnostunut tästä mainiosta kirjastosta.Code: Select all
If MouseUp(1) Then path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY()) EndIf
Siis oikeasti, käytä objektien ruutukoordinaatteja ettei mene negatiiviseksi, voin antaa mun strategiapeliapistani avun sulle tähän
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.
I know not what I know, but I do know that it's not beautiful.
I know not what I know, but I do know that it's not beautiful.
Re: Tyhmät kysymykset (I/2011)
Mutta meneväthän nekin miinuksen puolelle kun objekti on ruudun ulkopuolella. En tosin osaa sanoa vaikuttaako se tässä projektissa, mutta kuitenkin...skorpioni-cb wrote:ÄIJÄIJÄI EI MAAILMAKOORDINAATTEJA OBJEKTILLE.MrMonday wrote:Hei, aloitin tänään perehtymisen Jaren cbAStar-reitinhakukirjastoon, ja ongelmia ilmeni heti alku metreillä. Eli saan virheilmoituksen "Can't read from negative array index.", kun CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),Mouse()Y):in joku arvoista on negatiivinen. Eli jos objektin tai hiiren sijainti on funktiota kutsuttaessa alle nollan kummallakaan akselilla. Selkeä siis sinänsä, mutta sitä lähinnä kysyisin, että mikäli CalculatePath()-funktio ei huoli arvoltaan negatiivisia parametrejä, niin mikä olisi helpoin/järkevin tapa toteuttaa em. funktiolle kelpaavat parametrit? Kiitos jo etukäteen kaikille
OffTopic: Ajattelin jatkaa sittemmin jäätynyttä Discord-peliäni, ja tahdon siihen ehdottomasti hiiriohjauksen (ja muitakin toimintoja myös hiirelle), ja siksi siis olen kiinnostunut tästä mainiosta kirjastosta.Code: Select all
If MouseUp(1) Then path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY()) EndIf
Siis oikeasti, käytä objektien ruutukoordinaatteja ettei mene negatiiviseksi, voin antaa mun strategiapeliapistani avun sulle tähän
-
- Devoted Member
- Posts: 718
- Joined: Wed Nov 03, 2010 7:56 pm
- Location: Joku piste pohjoisessa.
Re: Tyhmät kysymykset (I/2011)
Möh tämä onkin ongelma mutta suosittelisin väsäämään jonkin kääntöfunktion joka kääntää pelikoordinaatit kuvitteellisen taulukon (jolla on alkupiste sopivan kaukana pelimaailman vasemmassa yläkulmassa) koordinaateiksi. Esim:MrMonday wrote:Hei, aloitin tänään perehtymisen Jaren cbAStar-reitinhakukirjastoon, ja ongelmia ilmeni heti alku metreillä. Eli saan virheilmoituksen "Can't read from negative array index.", kun CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),Mouse()Y):in joku arvoista on negatiivinen. Eli jos objektin tai hiiren sijainti on funktiota kutsuttaessa alle nollan kummallakaan akselilla. Selkeä siis sinänsä, mutta sitä lähinnä kysyisin, että mikäli CalculatePath()-funktio ei huoli arvoltaan negatiivisia parametrejä, niin mikä olisi helpoin/järkevin tapa toteuttaa em. funktiolle kelpaavat parametrit? Kiitos jo etukäteen kaikille
OffTopic: Ajattelin jatkaa sittemmin jäätynyttä Discord-peliäni, ja tahdon siihen ehdottomasti hiiriohjauksen (ja muitakin toimintoja myös hiirelle), ja siksi siis olen kiinnostunut tästä mainiosta kirjastosta.Code: Select all
If MouseUp(1) Then path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY()) EndIf
Jos pelimaailmasi on 100*100 pikselin kokoinen (mitä se ei missään järkevässä maailmassa ole).
Kun käsitellään objektia, muunnat objektin pelimaailmasijainnin (objekti maailmakoordinaateissa 0,0 --> taulukossa 50,50.)
Tässä siis pitää olla tiedossa "taulukon" leveys ja korkeus.
Code: Select all
Function MuunnaX(pelimailmax,taulukonleveys)
taulukkox=taulukonleveys/2+pelimaailmax
Return taulukkox
End Function
Function MuunnaY(pelimailmay,taulukonkorkeus)
taulukkoy=taulukonkorkeus/2+pelimaailmay
Return taulukkoy
End Function
Nyt tiedät objektin kuvitteellisen taulukkosijainnin (vrt. ScreenPositionObject), voit välittää sen funktiolle ilman ongelmia. Hiiren koordinaatit eivät voi olla negatiivisia, koska ne ovat näyttökoordinaatteja. En nyt tiedä miten AStar toimii, mutta jos haluat muuttaa takaisin objektikoordinaateiksi objektien uuden sijainnin piirtämistä varten teet vain homman toisinpäin. Näin ei ongelmia pääse tulemaan, kunhan teet taulukosta tarpeeksi ison (joitakin tuhansia sopii hyvin.)
Taulukkoahan ei oikeassa coolbasicissa tarvitse luoda, sehän on vain kuvitteellinen. Toivottavasti osasin selittää tarpeeksi selvästi.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Re: Tyhmät kysymykset (I/2011)
Videon toisto ei onnistu. Video lähtee pyörimään niin, että äänestä kuuluu noin puoli sekuntia (näyttö mustana) ja sitten kaikki pysähtyy. Tämä siis CB:n manuaalin koodilla.
Video tehty MovieMakerilla (2.6)
Video tehty MovieMakerilla (2.6)
Re: Tyhmät kysymykset (I/2011)
Mikähän tiedostoformaatti mahtaa olla kyseessä?DJ-Filbe wrote:Videon toisto ei onnistu. Video lähtee pyörimään niin, että äänestä kuuluu noin puoli sekuntia (näyttö mustana) ja sitten kaikki pysähtyy. Tämä siis CB:n manuaalin koodilla.
Video tehty MovieMakerilla (2.6)
Solar Eclipse
We're in a simulation, and God is trying to debug us.
- aloittelijamies
- Newcomer
- Posts: 45
- Joined: Fri Nov 18, 2011 9:55 pm
Re: Tyhmät kysymykset (I/2011)
Olettaisin, että wmv.MaGetzUb wrote:Mikähän tiedostoformaatti mahtaa olla kyseessä?DJ-Filbe wrote:Videon toisto ei onnistu. Video lähtee pyörimään niin, että äänestä kuuluu noin puoli sekuntia (näyttö mustana) ja sitten kaikki pysähtyy. Tämä siis CB:n manuaalin koodilla.
Video tehty MovieMakerilla (2.6)
Re: Tyhmät kysymykset (I/2011)
Kertokaapas nyt, arvoisa foorumin väki, että miten saan toteutettua kahden pallon törmäyksen jälkeisen kimpoamisen, siis siten, että kun pallo A törmää pallo B:hen, niin nämä kimpoaisivat toisistaan oikeisiin suuntiin. Eli aivan kuten biljardissa pallot kimpoavat toisistaan törmätessään. Jostain syystä ei vaan aivot toimi, vaikka ratkaisu onkin varmasti hyvin simppeli
Kiitos jo etukäteen
Kiitos jo etukäteen
Re: Tyhmät kysymykset (I/2011)
Tuota olen minäkin säätänyt useamman päivän tällä viikolla! Arvostaisin todellakin jos joku osaisi selittää MAB- ja peruskoulufyssapohjaiselle koodarille miten kaksiulotteisten ympyröiden pitäisi käyttäytyä törmätessään!
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)
Uskoisin että ratkaisu ei ole kovin simppeliMrMonday wrote:Kertokaapas nyt, arvoisa foorumin väki, että miten saan toteutettua kahden pallon törmäyksen jälkeisen kimpoamisen, siis siten, että kun pallo A törmää pallo B:hen, niin nämä kimpoaisivat toisistaan oikeisiin suuntiin. Eli aivan kuten biljardissa pallot kimpoavat toisistaan törmätessään. Jostain syystä ei vaan aivot toimi, vaikka ratkaisu onkin varmasti hyvin simppeli
Kiitos jo etukäteen
Itse olen aina päätynyt yksinkertaiseen ympyrän törmäys metodiin. Pallojen neurat ovat törmäys hetkessä tasaisia
Code: Select all
SCREEN 400,300
FrameLimit 60
x# = 50
y# = 150
x2# = 350
y2# = 150
angle# = 0
angle2# = 180
speed# = 3
speed2# = 6
rad# = 6
rad2# = 6
Repeat
x# = x# + Cos(angle#) * speed#
y# = y# - Sin(angle#) * speed#
x2# = x2# + Cos(angle2#) * speed2#
y2# = y2# - Sin(angle2#) * speed2#
speed# = Max(speed# - 0.03,0)
speed2# = Max(speed2# - 0.03,0)
If Distance(x#,y#,x2#,y2#) <= rad#/2+rad2#/2
If o=0
o = 1
nspeed# = speed#/6+speed2#/4
nspeed2# = speed2#/6+speed#/4
speed# = nspeed#
speed2# = nspeed2#
//nangle# = ((180-angle#)+angle2#)/2
//nangle2# = ((180-angle2#)+angle#)/2
nangle# = ((180-angle#)+angle2#)/2
nangle2# = ((180-angle2#)+angle#)/2
angle# = nangle#
angle2# = nangle2#
EndIf
Else
o=0
EndIf
Color 54,160,32
Circle x#-rad#/2, y#-rad#/2,rad#
Text 10,10, Str(speed#)
Color 32,64,160
Circle x2#-rad2#/2, y2#-rad2#/2,rad2#
Text 10,20, Str(speed2#)
If GetKey() > 0
If Rand(0,1) = 1
i=Rnd(-40,40)
a=Rnd(3,7)
x# = 50
y# = 150
x2# = 350
y2# = 150
angle# = 0+i
angle2# = 180-i
speed# = a
speed2# = a
rad# = 6
rad2# = 6
Else
x# = 50
y# = 150
x2# = 350
y2# = 150
angle# = 0
angle2# = 180
speed# = Rnd(0,7)
speed2# = Rnd(0,7)
rad# = 6
rad2# = 6
EndIf
EndIf
DrawScreen
Forever
EDIT:
Pienellä googlauksella löytyi laskemistapa:
http://www.gamasutra.com/view/feature/3 ... urate_.php
Näyttää monimutkaiselta toteuttaa
Re: Tyhmät kysymykset (I/2011)
Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
oon just saanu joistiki
Aloittelija koodari joka
KOTISIVU
Re: Tyhmät kysymykset (I/2011)
DLL:llä, jonka joudut itse väsäämään. Tai sitten odotat että cbE tukee ilotikkujaLaurenzo wrote:Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
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 (I/2011)
DLL:lä, jota et itse joudu väsäämään: viewtopic.php?f=12&t=507VesQ wrote:DLL:llä, jonka joudut itse väsäämään. Tai sitten odotat että cbE tukee ilotikkujaLaurenzo wrote:Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
En ole kyllä itse kokeillut tuon toimivuutta. Itse odotan, että cbE tukee ilotikkuja