Tyhmät kysymykset (I/2012)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
valscion
Moderator
Moderator
Posts: 1587
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion » Wed May 16, 2012 11:19 pm

beginner wrote:Ei se oikein toimikaan...Nyt jokaiseen data-kerrokseen merkittyyn paikkaan kyllä ilmestyy vihu-objekti, mutta kun pääsilmukkaan laittaa esimerkiksi:

Code: Select all

For a=1 To 16
    MoveObject VIHUT(a),Rand(1,2)
Next a 
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.
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.
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

beginner

Re: Tyhmät kysymykset (I/2011)

Post by beginner » Wed May 16, 2012 11:27 pm

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"?

User avatar
valscion
Moderator
Moderator
Posts: 1587
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion » Thu May 17, 2012 12:30 am

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"?
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ää:

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

beginner

Re: Tyhmät kysymykset (I/2011)

Post by beginner » Thu May 17, 2012 12:40 am

No nyt näyttää siltä kuin pitääkin :)

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post by skorpioni-cb » Fri May 18, 2012 6:44 pm

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.
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 12:17 pm
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain » Fri May 18, 2012 6:48 pm

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.
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.

MrMonday
Advanced Member
Posts: 378
Joined: Fri Oct 10, 2008 2:35 pm

Re: Tyhmät kysymykset (I/2011)

Post by MrMonday » Fri May 18, 2012 8:47 pm

EDIT:

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ä :oops: :roll:

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 :D

Code: Select all

If MouseUp(1) Then
    path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY())
EndIf
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.
Last edited by MrMonday on Sat May 19, 2012 12:42 am, edited 1 time in total.

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post by skorpioni-cb » Fri May 18, 2012 9:32 pm

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 :D

Code: Select all

If MouseUp(1) Then
    path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY())
EndIf
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.
ÄIJÄIJÄI EI MAAILMAKOORDINAATTEJA OBJEKTILLE.
Siis oikeasti, käytä objektien ruutukoordinaatteja ettei mene negatiiviseksi, voin antaa mun strategiapeliapistani avun sulle tähän :D
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

User avatar
Latexi95
Guru
Posts: 1164
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 » Fri May 18, 2012 9:42 pm

skorpioni-cb wrote:
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 :D

Code: Select all

If MouseUp(1) Then
    path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY())
EndIf
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.
ÄIJÄIJÄI EI MAAILMAKOORDINAATTEJA OBJEKTILLE.
Siis oikeasti, käytä objektien ruutukoordinaatteja ettei mene negatiiviseksi, voin antaa mun strategiapeliapistani avun sulle tähän :D
Mutta meneväthän nekin miinuksen puolelle kun objekti on ruudun ulkopuolella. En tosin osaa sanoa vaikuttaako se tässä projektissa, mutta kuitenkin...

User avatar
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 8:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija » Fri May 18, 2012 9:47 pm

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 :D

Code: Select all

If MouseUp(1) Then
    path = CalculatePath(ObjectX(obj),Objecty(obj),MouseX(),MouseY())
EndIf
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.
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:
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
Esim. -20,-15 muuttuisi 30,35:ksi.

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...

DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 3:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe » Sat May 19, 2012 3:13 pm

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)

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Tyhmät kysymykset (I/2011)

Post by MaGetzUb » Sun May 20, 2012 5:19 pm

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)
Mikähän tiedostoformaatti mahtaa olla kyseessä?
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
aloittelijamies
Newcomer
Posts: 45
Joined: Fri Nov 18, 2011 10:55 pm

Re: Tyhmät kysymykset (I/2011)

Post by aloittelijamies » Thu May 24, 2012 12:58 pm

MaGetzUb wrote:
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)
Mikähän tiedostoformaatti mahtaa olla kyseessä?
Olettaisin, että wmv.

MrMonday
Advanced Member
Posts: 378
Joined: Fri Oct 10, 2008 2:35 pm

Re: Tyhmät kysymykset (I/2011)

Post by MrMonday » Fri Jun 08, 2012 8:37 pm

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 :roll:

Kiitos jo etukäteen :)

User avatar
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Feuer » Fri Jun 08, 2012 9:55 pm

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

User avatar
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 9:06 pm

Re: Tyhmät kysymykset (I/2011)

Post by legend » Fri Jun 08, 2012 11:16 pm

MrMonday 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 :roll:

Kiitos jo etukäteen :)
Uskoisin että ratkaisu ei ole kovin simppeli :?
Itse olen aina päätynyt yksinkertaiseen ympyrän törmäys metodiin. Pallojen neurat ovat törmäys hetkessä tasaisia :D

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 :(


User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo » Mon Jun 11, 2012 7:28 pm

Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU

User avatar
valscion
Moderator
Moderator
Posts: 1587
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion » Mon Jun 11, 2012 7:30 pm

Laurenzo wrote:Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
DLL:llä, jonka joudut itse väsäämään. Tai sitten odotat että cbE tukee ilotikkuja ;)
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

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu » Mon Jun 11, 2012 7:49 pm

VesQ wrote:
Laurenzo wrote:Miten voi tehä sellase peli että hahmo liikkuu joystickilla?
oon just saanu joistiki
DLL:llä, jonka joudut itse väsäämään. Tai sitten odotat että cbE tukee ilotikkuja ;)
DLL:lä, jota et itse joudu väsäämään: viewtopic.php?f=12&t=507
En ole kyllä itse kokeillut tuon toimivuutta. Itse odotan, että cbE tukee ilotikkuja :D
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Tyhmät kysymykset (I/2011)

Post by Wingman » Mon Jun 11, 2012 10:16 pm

CBIlo toimii kyllä, tein sillä joskus jotain jännää peliäkin jopa. Sen kehitys tosin loppui ilotikun hajoamiseen ;D
- - - -

Locked