Game Making Should Be Easy...
https://www.coolbasic.com/phpBB3/
Code: Select all
If SoundPlaying(musiikki)=False Then musiikki=PlaySound("media/chopper.ogg")
Eli se ollee PlaySound-bugi.Untitled.bmp wrote:Kaatumine tapahtuu siis, kun tuon rivin ehto on tosi..
Eihän PlaySound toimi noin. Jos haluat sen toimivan kuin funktio (eli käytät sulkeita kun kutsut sitä) niin sinun tulee antaa sille LoadSoundilta saamasi kokonaislukumuuttuja, äänen ID. Silloin PlaySound palauttaa haluamasi kanavamuuttujan jota voit käyttää mm. SoundPlaying-funktion kanssa.Untitled.bmp wrote:Bug spotted!
SoundPlaying ei vaikuta toimivan oikein ^^ Tai siinä on jotain häikkää tämä rivi nimittäin kaataa ohjelman:
Kaatumine tapahtuu siis, kun tuon rivin ehto on tosi.. En ainakaan tuossa bugilistassa löytänyt tuota bugia, vaikka melkein luulisi jollekin jo tulleen moisen. No päätinpä ilmottaa kuitenkin tästäCode: Select all
If SoundPlaying(musiikki)=False Then musiikki=PlaySound("media/chopper.ogg")
Eikö PlaySoundin pitäisi toimia myös tuolla tavalla?VesQ wrote:Eihän PlaySound toimi noin. Jos haluat sen toimivan kuin funktio (eli käytät sulkeita kun kutsut sitä) niin sinun tulee antaa sille LoadSoundilta saamasi kokonaislukumuuttuja, äänen ID. Silloin PlaySound palauttaa haluamasi kanavamuuttujan jota voit käyttää mm. SoundPlaying-funktion kanssa.Untitled.bmp wrote:Bug spotted!
SoundPlaying ei vaikuta toimivan oikein ^^ Tai siinä on jotain häikkää tämä rivi nimittäin kaataa ohjelman:Kaatumine tapahtuu siis, kun tuon rivin ehto on tosi.. En ainakaan tuossa bugilistassa löytänyt tuota bugia, vaikka melkein luulisi jollekin jo tulleen moisen. Nopäätinpä ilmottaa kuitenkin tästäCode: Select all
If SoundPlaying(musiikki)=False Then musiikki=PlaySound("media/chopper.ogg")
Code: Select all
Repeat
If SoundPlaying(musiikki)=False Then musiikki=PlaySound("menu.ogg")
DrawScreen
Forever
Minulla ilmenee tätä ongelmaa pidemmilläkin koodeilla. Helpoin tapa sulkea ohjelma jumittumisen jälkeen oli painaa Ctrl+C konsolissa, mutta nykyisessä versiossa konsoli on oletuksana piiloitettu, joten ohjelman joutuu sulkemaan prosessien kautta.Konstaduck wrote:Miksi ohjelma jää satunnaisesti käyntiin, satunnaisesti sammuu, kun ajan testiohjelmanKun ohjelma jää käyntiin, sitä ei voi sammuttaa ESCistä taikka raksista. Prosessin sulkeminen on ainut ratkaisu. Ei tätä ongelmaa ollut ei-cbE:n aikana...Code: Select all
setwindow "testiohjelma"
Niin ja kuten kuvasta voinee päätellä kraafikon paikka on auki. Suht futuristista ympäristöä (sijoittuu avaruusasemalle), melko korkearesoluutioista (tilet+ukko 64x64). Lähetä YV jos kiinnostaa (pääsen lukemaan viimeistään maanantaina).
Jos arvelen oikein, niin hyvännäköistä työtä ja hieno idea, toivottavasti saat toimimaan hyvin ja kartoista tulee mielenkiintoisia. Onnea projektille, taas yksi jota ei millään haluaisi nähdä jäätyvän.axu wrote:...Sen sijaan jätän teidät arvelemaan mitä täältä on tulossa.
Minulla näkyy samanlaisena kun komentorivin asetuksista on valittuna "Rasterifontit", kun vaihdan sen joksikin muuksi niin ääkköset toimii oikein
Klikkaa hiiren oikealla näppäimellä otsikkopalkkia, ja sitten pitäisi tulla popup menu esiin.Konstaduck wrote:Mitenkäs tuolla XP:llä pääsee komentorivin asetuksiin..?
Code: Select all
ERROR: Can't center the window - could not get the monitor info.
nyt näyttää siltä että vain perustilalla toimii, mutta jos yritän kutsua screeniä niin kaatuu. miksi?
Tämä ei toimi nyt vielä nykyisessä cbe:sä, mutta seuraavassa julkaisussa tämä tulee toimimaan:Chaosworm wrote:Tämä ehkä saattaisi kuulua myös Tyhmät kysymykset -ketjuun, mutta kysyn silti täällä kun Enchantediin nimenomaan liittyy.
Onko mitään fiksua tapaa toteuttaa kameran kääntymistä hiiren liikkeen mukaan? Toistaiseksi olen toteuttanut muutaman cbFUNin funkkarin kanssa siten, että ukkoa käännetään kursoria kohti, jonka jälkeen kursori siirretään tiettyyn paikkaan ruudulla joka on aina vähän matkaa ukon edessä, jonka jälkeen kameran kulmaksi asetetaan ukon kulma -90 (jotta ukko katsoo ylöspäin). Tästä kuitenkin saattaa koitua joitain ongelmia; voiko tämän tehdä ilman kursorin sijainnin piluttelemista koodin avulla?
Code: Select all
angle = angle + MouseMoveX()
PositionMouse ScreenWidth()/2, ScreenHeight()/2
RotateObject ukko, angle+90
RotateCamera 0, angle
CloneCameraPosition ukko
MoveCamera 100
Tuossa oli pari virhettä. Tässä toimiva esimerkki (mousemove-ominaisuus kierretään kutsumalla sitä ylimääräisen kerran):MaGetzUb wrote:Tämä ei toimi nyt vielä nykyisessä cbe:sä, mutta seuraavassa julkaisussa tämä tulee toimimaan:
Code: Select all
Map = LoadMap("Media/cdm2.til", "Media/tileset.bmp")
Guy = LoadObject("Media/soldier.bmp")
Repeat
angle = angle - MouseMoveX()
PositionMouse ScreenWidth()/2, ScreenHeight()/2
a = MouseMoveX()
RotateObject Guy, angle+90
RotateCamera 90, angle
CloneCameraPosition Guy
MoveCamera 100
DrawScreen
Forever
Uusin versio yrittää keskittää ikkunan keskelle ruutua ja käyttää kyseistä toiminnallisuutta varten al_get_monitor_info() funktiota. Kyseinen funktio epäonnistuu jostain syystä koneellasi ja siitä johtuu tuo virhe. Ei cbE:n kuitenkaan tulisi kaatua kyseisessä kohtaa, tuo on vain ilmoitus joka ei vaikuta muuhun toiminnallisuuteen. Tältä näyttää kyseisen osan C++ koodi, josta pitäisi käydä ilmi se ettei em. virhe kaada ohjelmaa.naputtelija wrote:Itselläni ei uusin toimi. Käytössä siis compiler/debug versio cbE:stä. Aina kun yritän ajaa, tulee vain virhe:Code: Select all
ERROR: Can't center the window - could not get the monitor info.
EDIT:nyt näyttää siltä että vain perustilalla toimii, mutta jos yritän kutsua screeniä niin kaatuu. miksi?
Code: Select all
if (state != 0) {
// Center the window to the first display, if not fullscreen
ALLEGRO_MONITOR_INFO displayInfo;
if (!al_get_monitor_info(0, &displayInfo)) {
// Couln't get display info, just output error to cerr and continue as usual.
cerr << "ERROR: Can't center the window - could not get monitor info." << endl;
}
else {
int topleftX = ((displayInfo.x2 - displayInfo.x1) - al_get_display_width(window)) / 2;
int topleftY = ((displayInfo.y2 - displayInfo.y1) - al_get_display_height(window)) / 2;
al_set_window_position(window, topleftX, topleftY);
}
}
Ei siinä mitään virhettä ollut, se vain toimii nykyisen cb:n mukaisesti, mutta se ei toimi nykyisellä julkaistulla cbe versiolla. Tuo sinun omasi toimii nykyisellä cbe versiolla, mutta se ei tulevalla cbe versiolla ole oikeaoppinen.axu wrote:Tuossa oli pari virhettä. Tässä toimiva esimerkki (mousemove-ominaisuus kierretään kutsumalla sitä ylimääräisen kerran):MaGetzUb wrote:Tämä ei toimi nyt vielä nykyisessä cbe:sä, mutta seuraavassa julkaisussa tämä tulee toimimaan:
Code: Select all
'NOTE! You can hide the mouse pointer with
'ShowMouse OFF
cursor= LoadImage("Media\cow.bmp")
x=200
y=150
Repeat
x=x+MouseMoveX()
y=y+MouseMoveY()
PositionMouse 200,150
DrawImage cursor,x,y
DrawScreen
Until EscapeKey()
En viitannut niinkään MouseMoven käyttöön vaan siihen, että sinun versiossa ukko katsoo ylös, mutta kamera on sijoitettu ukosta oikealle päin ja kameran pyöritys toimii kuin ukko katsoisi alaspäin (vasemmalle liikuttaminen pyörittää ruutua vastapäivään). Ja kyllä tuo minun koodin pitäisi toimia tulevallakin versiolla, ellei sitten kameran liikuttelua ole menty muuttamaan.MaGetzUb wrote:Ei siinä mitään virhettä ollut, se vain toimii nykyisen cb:n mukaisesti, mutta se ei toimi nykyisellä julkaistulla cbe versiolla. Tuo sinun omasi toimii nykyisellä cbe versiolla, mutta se ei tulevalla cbe versiolla ole oikeaoppinen.