Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 8:06 pm
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Herra Siili »

phons wrote:Blender!! Ja kyllä Wings3D:kin pystyy avamaan. Kyllä niitä varmaan riittää mutta nuo olivat ne mitkä tuli ekana mieleen. Ja en sitten usko että CB pystyy rendaamaan mitään himo 3D-modeleja, jotain perus palikoita. :P Tai mistäs sitä tietää en ole kyllä testannut, mutta olettaisin näin.
Mitenkäs Blenderillä pystyy tallentamaan .objiin?
a.k.a. Gehock
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

File -> Export -> Wavefront (.obj) ainakin 2.5:n alphassa, suunnilleen näin se hoitui aiemmissakin ellen väärin muista.

Tämä siis kutsuu ulkoista (joskin blenderin mukana tulevaa) export-skriptiä joka tekee mallista .obj -tiedoston.
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 8:06 pm
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Herra Siili »

Kiitos! Tuota olin kauan miettinyt.
a.k.a. Gehock
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Miten pystyisin määrittämään ohjelman niin, että se etsii tiety(i)stä kansioista tiedostoja, joilla tietty nimi?
"Baby," I said. "I'm a genius but nobody knows it but me."
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Rupesin tekemään esimerkkiä, kun tuli mieleen vilkaista manuaalin esimerkkiä funktiosta FindFile(), joka sitten sattuikin olemaan täysin samanlainen kuin mitä itse ajattelin.

Eli manuaalista lainattu esimerkki funktiolle FindFile(). Esimerkissä siis etsitään Media-kansiosta tiedostoja, joiden pääte on ".bmp".

Code: Select all

'Change directory to Media 
ChDir "Media"

'Prepare search 
StartSearch

    'Scan all files and print all .BMP images
    count=0
    Repeat
    
        file$=FindFile()
        
        If file$="" Then Exit 'no more files
        
        If Lower(Right(file$,4))=".bmp" Then
            Print file$
            
            count=count+1
        EndIf
    
    Forever

'End search 
EndSearch

Print "Found "+count+" files"

WaitKey
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Metsuri
Newcomer
Posts: 15
Joined: Thu Aug 14, 2008 9:34 pm

Re: Tyhmät kysymykset (II/2009)

Post by Metsuri »

Miten onnistuisin tekemään niin, että typeillä luomani kuvat olis muiden kuvien alla? Kun nyt ne menee kaikkien pelihahmojen ym päälle.
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish »

Metsuri wrote:Miten onnistuisin tekemään niin, että typeillä luomani kuvat olis muiden kuvien alla? Kun nyt ne menee kaikkien pelihahmojen ym päälle.
Piirrä ne ensimmäisenä. Eli sinulla lienee alla olevaa vastaava looppi, joten laitat sen vain ennen muiden kuvien piirtämistä.

Code: Select all

for kuva.Tyyppi = each Tyyppi
  drawimage kuva\img, 0, 0
next kuva
CoolBasic henkilökuntaa
Kehittäjä
Dewe
Newcomer
Posts: 18
Joined: Tue Dec 01, 2009 8:53 pm
Location: Kaskinen, Pohjanmaa

Re: Tyhmät kysymykset (II/2009)

Post by Dewe »

Ongelma on se että ohjelma ei hyväksy kentän koodaustani. Yritin sen jotenki näin: LoadMap("ruohomap.til","grass.bmp") onks tos jotakin väärin kun se ilmoittaa ettei "ruohomap.til" mappia voi ladata vaikka tein sen onnistuneesti tilesterillä. Mikä vikana? :roll:

Code: Select all

Not enough disc space. Delete windows?
Metsuri
Newcomer
Posts: 15
Joined: Thu Aug 14, 2008 9:34 pm

Re: Tyhmät kysymykset (II/2009)

Post by Metsuri »

TheFish wrote:
Metsuri wrote:Miten onnistuisin tekemään niin, että typeillä luomani kuvat olis muiden kuvien alla? Kun nyt ne menee kaikkien pelihahmojen ym päälle.
Piirrä ne ensimmäisenä. Eli sinulla lienee alla olevaa vastaava looppi, joten laitat sen vain ennen muiden kuvien piirtämistä.

Code: Select all

for kuva.Tyyppi = each Tyyppi
  drawimage kuva\img, 0, 0
next kuva
Ei kun mulla on looppo näin:

Code: Select all

If kauha2=1  And KeyHit(cbkeyr) 
 kauha2 = 0 
newBullet.BULLETS= New(BULLETS)
        newBullet\kasa=CloneObject(kasa)
        CloneObjectPosition newBullet\kasa,koura2
        CloneObjectOrientation newBullet\kasa,koura2
EndIf 
Muuten toimii hyvin, mut tuo em. on vielä.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by valscion »

Dewe wrote:Ongelma on se että ohjelma ei hyväksy kentän koodaustani. Yritin sen jotenki näin: LoadMap("ruohomap.til","grass.bmp") onks tos jotakin väärin kun se ilmoittaa ettei "ruohomap.til" mappia voi ladata vaikka tein sen onnistuneesti tilesterillä. Mikä vikana? :roll:
Tilesterillä piti kaiketi tallentaa 1.3 formaatilla, jos oikein muistan. Saattaa johtua siitä. Tarkista myös, että ruohomap.til ja grass.bmp ovat samassa kansiossa koodisi kanssa
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
Dewe
Newcomer
Posts: 18
Joined: Tue Dec 01, 2009 8:53 pm
Location: Kaskinen, Pohjanmaa

Re: Tyhmät kysymykset (II/2009)

Post by Dewe »

Tarttisin apua kun ammun tekemälläni "tankilla" niin miten saan ammuksen lähtemään piipun kohdasta eikä keskeltä tankkia ja ammus ei lähde suoraan kuin yhdessä asennossa joten miten korjaan että ammus menee tankin suuntaisesti?

Code: Select all

Not enough disc space. Delete windows?
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

Dewe wrote:Tarttisin apua kun ammun tekemälläni "tankilla" niin miten saan ammuksen lähtemään piipun kohdasta eikä keskeltä tankkia ja ammus ei lähde suoraan kuin yhdessä asennossa joten miten korjaan että ammus menee tankin suuntaisesti?
Sinulla lienee jo "CloneObjectPosition ammus, tankki" -tyyppinen rivi joka siirtää ammuksen tankin päälle, tämän jälkeen "CloneObjetOrientation ammus, tankki" kääntää sen samaan kohtaan. Tämän jälkeen voit korjata sen piipun kohdille käskemällä "MoveObject ammus, a, b" jossa a ja b ovat jotain kokeilemalla löytyviä arvoja, a eteenpäin ja b sivusuunnassa. Nämä siis vain objektia luotaessa, sen jälkeen liikutus toimii normaalisti pelkällä moveobjectilla (tai translateobjectilla jos sitä satut käyttämään.)
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 8:06 pm
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Herra Siili »

Asetat panoksen tankin päälle CloneObjectPosition:lla, käännät sen piipun suuntaiseksi CloneObjectOrientation:lla ja siirrät sen piipun kohdalle MoveObject:lla. Muistaakseni LearningCenterin ampumisesimerkissä oli tuollainen ratkaisu.
EDIT:

Olin hidas. :(

a.k.a. Gehock
User avatar
Kille
Active Member
Posts: 249
Joined: Wed Aug 26, 2009 3:50 pm
Location: Juankoski

Re: Tyhmät kysymykset (II/2009)

Post by Kille »

:?: Mistä voisi johtua, että koodi, joka toisella tietokoneella toimii täysin, sanoo toisella MAV? Kaikki tiedostot ovat muistitikulla joten mitään ei pitäisi puuttua. Onko koneissa niin suuria eroja?
ZEPPELIN
Jatkoa tulossa... tällä kertaa lataus ei kestä viikkoa
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Kaikki koneet eivät heitä mavia heti kun niiden pitäisi, esim. taulukoiden ylikirjoituksessa. Joskus mav ilmestyy vasta kun koneen sammuttaa. Toiset koneet taas ovat enemmän "virheherkkiä". Eli jos koodisi mavaa jollain koneella, siinä todennäköisesti on jokin virhe.

Joskus ilmestyy haamumaveja, jotka tulevat täysin tyhjästä ja johtuvat jostain bugista cb:ssä. Exet toimivat kaikilla koneilla, jos ne eivät mavaile koneella jolla ne on käännetty exeiksi (ellei koodissa tietenkin esim. kirjoiteta yli).

Edit. Jos et keksi minkälainen koodausvirhe ohjelmassasi voi olla, näytä se foorumeilla.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by SPuntte »

Voisin lisätä Jonezin vastaukseen, tietoa noista "haamuMAVeista".

Itselläni joku koodi heitti kyseistä virhettä jatkuvasti, enkä meinannut saada sitä millään katoamaan, mutta kun korvasin Select-rakenteen If...ElseIf -sarjalla, ongelma katosi yhtä oudosti kuin oli ilmestynytkin. Käytä siis Ifiä Selectin sijaan.

Pikselikomennot GetPixel(), PutPIxel(), GetPixel2() ja PutPixel2() ovat erityisen MAV-herkkiä. Mmuistan, etten eräällä koneella saanut ainuttakaan PutPixel2 -komennon sisältämää koodia (edes täysin virheettömiä ohjelmia) toimimaan MAVitta. Myös pikselin lukeminen tai kirjoittaminen ruudun ulkopuolelle tuottaa toisilla koneilla herkemmin MAVin.

Kätevä keino MAVien metsästykseen on pilkkoa koodia osiin ja yrittää poistaa lohko kerrallaan käytöstä niin, että MAVin aiheuttava kohta lopulta löytyy. Jos MAV esiintyy jo ohjelman käynnistysvaiheessa, ei siis esim. kesken pelisession, WaitKey -komennon lisääminen ja siirtäminen koodissa on kätevä tapa haarukoida virheen aiheuttavaa kohtaa.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 8:06 pm
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Herra Siili »

SPuntte wrote:Jos MAV esiintyy jo ohjelman käynnistysvaiheessa, ei siis esim. kesken pelisession, WaitKey -komennon lisääminen ja siirtäminen koodissa on kätevä tapa haarukoida virheen aiheuttavaa kohtaa.
Itse käytän MAVin metsästykseen SetWindowia.
a.k.a. Gehock
Ihmetteliä

Re: Tyhmät kysymykset (II/2009)

Post by Ihmetteliä »

Herra Siili wrote:
SPuntte wrote:Jos MAV esiintyy jo ohjelman käynnistysvaiheessa, ei siis esim. kesken pelisession, WaitKey -komennon lisääminen ja siirtäminen koodissa on kätevä tapa haarukoida virheen aiheuttavaa kohtaa.
Itse käytän MAVin metsästykseen SetWindowia.
Miten :?:
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

Ihmetteliä wrote:
Herra Siili wrote:
SPuntte wrote:Jos MAV esiintyy jo ohjelman käynnistysvaiheessa, ei siis esim. kesken pelisession, WaitKey -komennon lisääminen ja siirtäminen koodissa on kätevä tapa haarukoida virheen aiheuttavaa kohtaa.
Itse käytän MAVin metsästykseen SetWindowia.
Miten :?:
Pistää eri tekstejä setwindowilla eri kohtiin koodia ja tarkistaa, minkä kohdalla ohjelma mavaa (se jää luonnollisesti mavin kohdalla ikkunan otsikoksi)
Dewe
Newcomer
Posts: 18
Joined: Tue Dec 01, 2009 8:53 pm
Location: Kaskinen, Pohjanmaa

Re: Tyhmät kysymykset (II/2009)

Post by Dewe »

koodaaja wrote:
Dewe wrote:Tarttisin apua kun ammun tekemälläni "tankilla" niin miten saan ammuksen lähtemään piipun kohdasta eikä keskeltä tankkia ja ammus ei lähde suoraan kuin yhdessä asennossa joten miten korjaan että ammus menee tankin suuntaisesti?
Sinulla lienee jo "CloneObjectPosition ammus, tankki" -tyyppinen rivi joka siirtää ammuksen tankin päälle, tämän jälkeen "CloneObjetOrientation ammus, tankki" kääntää sen samaan kohtaan. Tämän jälkeen voit korjata sen piipun kohdille käskemällä "MoveObject ammus, a, b" jossa a ja b ovat jotain kokeilemalla löytyviä arvoja, a eteenpäin ja b sivusuunnassa. Nämä siis vain objektia luotaessa, sen jälkeen liikutus toimii normaalisti pelkällä moveobjectilla (tai translateobjectilla jos sitä satut käyttämään.)
Ei toimi. :cry: minulla on se koodi mutta tarkoitin että ammus lähtee vinossa kun käännän tankkia eli siis aina samassa asennossa. Ei olisi ongelmaa jos ammus olisi pyöreä. Ja mille riville tai minkä jälkeen koodi "MoveObject ammus, a,b" tulisi laittaa kun se ei hyväksy minkäänlaisia satunnaisia arvoja. :?

Code: Select all

Not enough disc space. Delete windows?
Locked