Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by Latexi95 »

Kysymyksen tyhmyydestä en tiedä, mutta ongelma on typerä:
Mikä on pielessä:

Code: Select all

Type Omat
    Field Tyyppi$
    Field MaxTeho
    Field Ase$
    Field Tarkkuus
    Field Panokset
    Field SuuntaX#
    Field SuuntaY#
    Field Kohde
    Field Ukko
    Field Paikalleenasettuminen#
    Field Nopeus#
    Field Kokemus
    Field Numero
EndType
Type Vihut
    Field Tyyppi$
    Field Teho
    Field Ase$
    Field Tarkkuus
    Field Panokset
    Field Kohde
    Field Ukko
    Field SuuntaX
    Field Nopeus
EndType
Monesko=1
SCREEN 480,800
FrameLimit 40
Tileset=LoadImage("C:\\APPS\CoolBasic\Media\tileset.bmp")
map=MakeMap(15,25,32,32)
PaintObject map,tileset
konekiväärimies=LoadObject("C:\\APPS\CoolBasic\Media\Ukkeli.bmp",360)
konekivääri=LoadImage("C:\\APPS\CoolBasic\Media\konekivääri.jpg")

ShowObject konekiväärimies,OFF
MaxTarkkuus=30
AlkuJoukot=4
For y=1 To 25
For x=1 To 15
r=Rand(0,7)
If r=0 Or r=5 Then Piirrettävätile=16
If r=1 Or r>=6 Then Piirrettävätile=21
If r=2 Then Piirrettävätile=26
If r=3 Then Piirrettävätile=27
If r=4 Then Piirrettävätile=28
If r=2 Then
EditMap map,0,x,y,piirrettävätile
EditMap map,3,x,y,1
Else
EditMap map,0,x,y,piirrettävätile
EndIf
Next x
Next y
Repeat
If KeyHit(2) And TaktiikkaPisteet>3 Or AlkuJoukot>0 Then
Oma.Omat=New (Omat)
Oma\Ukko=CloneObject(konekiväärimies)
Oma\Panokset=50
Oma\Ase="M\27"
Oma\Tarkkuus=Rand(10,MaxTarkkuus)
Oma\Tyyppi="konekivääri"
Sijainti=Rand(-150,150)
PositionObject Oma\Ukko,Sijainti,-450
Oma\SuuntaX=Sijainti
Oma\SuuntaY=-350
Oma\Kokemus=1
Oma\Nopeus=1.0
Oma\Paikalleenasettuminen=4000/(22*Oma\Kokemus)
AlkuJoukot-1
Oma\Numero=monesko
monesko+1
EndIf

CameraPick MouseX(),MouseY()
PO=PickedObject()
For Oma.Omat=Each Omat

If Valittu=Oma\Numero Then
If MouseHit(1) Then
Oma\SuuntaX=MouseWX()
Oma\SuuntaY=MouseWY()
Valittu=0
EndIf
EndIf
If Oma\SuuntaX<>ObjectX(Oma\Ukko) Or Oma\SuuntaY<>ObjectY(Oma\Ukko) Then
suunta=GetAngle(ObjectX(Oma\Ukko),ObjectY(Oma\Ukko),Oma\SuuntaX,Oma\SuuntaY)
RotateObject Oma\Ukko,suunta
MoveObject Oma\Ukko,Oma\Nopeus
Oma\PaikalleenAsettuminen=4000/(22*Oma\Kokemus)
Else
Oma\PaikalleenAsettuminen-1
EndIf
If Distance(ObjectX(Oma\Ukko),ObjectY(Oma\Ukko),MouseWX(),MouseWY())<35 Then

If MouseHit(1) Then
Valittu=Oma\Numero

EndIf
EndIf

CloneCameraPosition Oma\Ukko

Next Oma
DrawGame
Text 10,10,"X"+MouseWX()
Text 10,20,"Y"+MouseWY()
DrawScreen
Forever
Yritän tehdä Mud And Blood 2 tyylistä puolustus peliä,
mutta jostain syystä ukkelit eivät millään mene oikeaan suuntaan.
Älkää välittäkö tämän hetkisestä toteutuksesta.
Toteutin sen jo kertaalleen PickedObject:in avulla,
mutta kun se ei toiminut kokeilin tätä, mutta tämäkään ei toimi.
Eli missä vika :?:

Ei myöskään tarvitse välittää kartasta,
koska olisi turhaa ladata tänne oikea tileset,
kun ongelma ei johdu siitä.
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG »

Tietääkö joku kaavaa laskutoimitukselle, jonka avulla saadaan RGB-arvosta 32-bittinen pikseli Putpixelin käyttöön?
Hengität nyt manuaalisesti.
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Tyhmät kysymykset

Post by KilledWhale »

DatsuniG wrote:Tietääkö joku kaavaa laskutoimitukselle, jonka avulla saadaan RGB-arvosta 32-bittinen pikseli Putpixelin käyttöön?
B + (G Shl 8) + (R Shl 16) + (A Shl 24)
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset

Post by skorpioni-cb »

Mikä on hyvä RLE-paketoija?
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.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by Latexi95 »

KilledWhale wrote:
DatsuniG wrote:Tietääkö joku kaavaa laskutoimitukselle, jonka avulla saadaan RGB-arvosta 32-bittinen pikseli Putpixelin käyttöön?
B + (G Shl 8) + (R Shl 16) + (A Shl 24)
Mikä ihmeen A? Eikös se mene näin:

Code: Select all

Function RGBToPixel(r,g,b)
    //Converts RGB -> pixel
    Return b + (g Shl 8) + (r Shl 16) + (255 Shl 24)
EndFunction
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset

Post by buke44 »

Tietääkö joku miksi tulee "unknow runtime exeption" aina kun käytän komentoa StopSound?
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset

Post by skorpioni-cb »

Lähetä koodi, niin katsotaan.
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.
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset

Post by buke44 »

En halua laittaa koko koodia. Tässä musiikkiin liittyvät pätkät:
musiikin lataus

Code: Select all

musiikki2=LoadSound("musiikki2.mp3")
soitto

Code: Select all

If KeyHit (cbkeyu) And alue# = 2.0 Then PlaySound musiikki2, 100, 0 
If alue# = 2.0 Then SetSound musiikki2, ON, 100

Code: Select all

If SoundPlaying (musiikki2) And alue# = 3.0 Then StopSound musiikki2
Tuossa olis koodi, sano jos tarvii enemmän.
Last edited by buke44 on Thu May 28, 2009 8:24 am, edited 1 time in total.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset

Post by skorpioni-cb »

Koko koodi, koska tuossa ei ole koko totuus.
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.
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Tyhmät kysymykset

Post by KilledWhale »

Latexi95 wrote:
KilledWhale wrote:
DatsuniG wrote:Tietääkö joku kaavaa laskutoimitukselle, jonka avulla saadaan RGB-arvosta 32-bittinen pikseli Putpixelin käyttöön?
B + (G Shl 8) + (R Shl 16) + (A Shl 24)
Mikä ihmeen A? Eikös se mene näin:

Code: Select all

Function RGBToPixel(r,g,b)
    //Converts RGB -> pixel
    Return b + (g Shl 8) + (r Shl 16) + (255 Shl 24)
EndFunction
A eli alpha eli läpinäkyvyys.
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset

Post by esa94 »

KilledWhale wrote:
Latexi95 wrote:
Mikä ihmeen A? Eikös se mene näin:

Code: Select all

Function RGBToPixel(r,g,b)
    //Converts RGB -> pixel
    Return b + (g Shl 8) + (r Shl 16) + (255 Shl 24)
EndFunction
A eli alpha eli läpinäkyvyys.
Onkos kukaan muuten kokeillut käyttää PutPixelin kanssa alfa-arvoa? Sehän saattaisi jopa toimia, rite?
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons »

skorpioni-cb wrote:Koko koodi, koska tuossa ei ole koko totuus.
On siinä, minulla on ollut sama ongelma ja selvitin, että se toimii vain jos lataat äänen PlaySound funktiolla\komennolla.
Eli:

Code: Select all

Repeat
    music=PlaySound("media\hololoo.wav")
    If KeyDown(cbkeyq) Then StopSound music
Until EscapeKey()
Toimii
Kun taas:

Code: Select all

music=LoadSound("media\hololoo.wav")

Repeat
    PlaySound music
    If KeyDown(cbkeyq) Then StopSound music
Until EscapeKey()
Ei toimi.

Edit: Okei vaihdoin KeyHit:n KeyDown:ksi että se ehtii pysäyttämään sen :D
Image
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Tyhmät kysymykset

Post by JATothrim »

Muistaakseni CB:n musiikin/äänien toistossa oli joitain bugeja (thanx to äänikirjastolle, jonka nimeä en muista) , ja tämä taitaa lukeutua niihin. Vaikka .mp3 tiedostoja voikin ladata loadsound():illa, tämä tuntuu vähän tyhmältä kun musiikin voi soittaa suoraan levyltä. Ääniefekteille (0-10 sec pituisia) .mp3 pakkaus on aika järjetöntä huonon laadun takia, .wav toimii paremmin ja on lisenssi vapaa.
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset

Post by buke44 »

phons wrote:
skorpioni-cb wrote:Koko koodi, koska tuossa ei ole koko totuus.
On siinä, minulla on ollut sama ongelma ja selvitin, että se toimii vain jos lataat äänen PlaySound funktiolla\komennolla.
Eli:

Code: Select all

Repeat
    music=PlaySound("media\hololoo.wav")
    If KeyDown(cbkeyq) Then StopSound music
Until EscapeKey()
Toimii
Kun taas:

Code: Select all

music=LoadSound("media\hololoo.wav")

Repeat
    PlaySound music
    If KeyDown(cbkeyq) Then StopSound music
Until EscapeKey()
Ei toimi.

Edit: Okei vaihdoin KeyHit:n KeyDown:ksi että se ehtii pysäyttämään sen :D
Nyt se sanoo sitten "Memory access violation"
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Mavi taitaa johtua siitä, että yrität pysäyttää äänen joka on jo pysäytetty...

En nyt tiedä mitä tossa haet, mutta tässä koodi jossa voit soittaa ääntä pitämällä q:ta pohjassa (tai painamalla sitä kerran).

Code: Select all

music=LoadSound("media\blaster.wav")

Repeat
    If KeyDown( CbKeyQ ) And SoundPlaying( aani ) = False Then
        aani = PlaySound( music )
    EndIf
Until EscapeKey()
Edit.

Tässä toinen koodi, jossa ääntä soitetaan kunnes painetaan q.

Code: Select all

music=LoadSound("media\blaster.wav")

soita = True
Repeat
    If SoundPlaying( aani ) = False And soita = True Then aani = PlaySound( music )
    
    If KeyDown( CbKeyQ ) Then
        soita = False
        StopSound aani
    EndIf
Until EscapeKey()
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by Latexi95 »

Nyt se sanoo sitten "Memory access violation"
Tai sitten siitä, että tuollaista "hololoo.wav":ia ei ole olemassa, minulla ei sitä ole ainakaan.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Latexi95 wrote:
Nyt se sanoo sitten "Memory access violation"
Tai sitten siitä, että tuollaista "hololoo.wav":ia ei ole olemassa, minulla ei sitä ole ainakaan.
Siinä tapauksessa jo kääntäjä tekisi virheilmoituksen, koska ei löydä kyseistä mediaa.

Edit.
Oho, kattelin väärää koodia :oops: . Eli mavihan voi tulla jos soitetaan suoraan kovalevyltä. Taidat olla täysin oikeassa. Olen itse tässä seonnut täysin että kuka kyselee ja mitä, ja itse ongelman laatu on kadonnut jonnekkin bittiviidakkoon.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by Latexi95 »

Jonez wrote: Siinä tapauksessa jo kääntäjä tekisi virheilmoituksen, koska ei löydä kyseistä mediaa.

Edit.
Oho, kattelin väärää koodia :oops: . Eli mavihan voi tulla jos soitetaan suoraan kovalevyltä. Taidat olla täysin oikeassa. Olen itse tässä seonnut täysin että kuka kyselee ja mitä, ja itse ongelman laatu on kadonnut jonnekkin bittiviidakkoon.
Hyvin ymmärrettävää. :lol:
EDIT:

Anteeksi vain, mutta voisiko joku vastata minun esittämääni kysymykseen tämän sivun ylälaidassa.
Kaikki hyppäsivät se yli. :(

phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons »

Code: Select all

Type Omat
    Field Tyyppi$
    Field MaxTeho
    Field Ase$
    Field Tarkkuus
    Field Panokset
    Field SuuntaX#
    Field SuuntaY#
    Field Kohde
    Field Ukko
    Field Paikalleenasettuminen#
    Field Nopeus#
    Field Kokemus
    Field Numero
EndType
Type Vihut
    Field Tyyppi$
    Field Teho
    Field Ase$
    Field Tarkkuus
    Field Panokset
    Field Kohde
    Field Ukko
    Field SuuntaX
    Field Nopeus
EndType
Monesko=1
SCREEN 480,800
FrameLimit 40
Tileset=LoadImage("C:\\APPS\CoolBasic\Media\tileset.bmp")
map=MakeMap(15,25,32,32)
PaintObject map,tileset
konekiväärimies=LoadObject("C:\\APPS\CoolBasic\Media\Ukkeli.bmp",360)
konekivääri=LoadImage("C:\\APPS\CoolBasic\Media\konekivääri.jpg")

ShowObject konekiväärimies,OFF
MaxTarkkuus=30
AlkuJoukot=4
For y=1 To 25
For x=1 To 15
r=Rand(0,7)
If r=0 Or r=5 Then Piirrettävätile=16
If r=1 Or r>=6 Then Piirrettävätile=21
If r=2 Then Piirrettävätile=26
If r=3 Then Piirrettävätile=27
If r=4 Then Piirrettävätile=28
If r=2 Then
EditMap map,0,x,y,piirrettävätile
EditMap map,3,x,y,1
Else
EditMap map,0,x,y,piirrettävätile
EndIf
Next x
Next y
Repeat
If KeyHit(2) And TaktiikkaPisteet>3 Or AlkuJoukot>0 Then
Oma.Omat=New (Omat)
Oma\Ukko=CloneObject(konekiväärimies)
Oma\Panokset=50
Oma\Ase="M\27"
Oma\Tarkkuus=Rand(10,MaxTarkkuus)
Oma\Tyyppi="konekivääri"
Sijainti=Rand(-150,150)
PositionObject Oma\Ukko,Sijainti,-450
Oma\SuuntaX=Sijainti
Oma\SuuntaY=-350
Oma\Kokemus=1
Oma\Nopeus=1.0
Oma\Paikalleenasettuminen=4000/(22*Oma\Kokemus)
AlkuJoukot-1
Oma\Numero=monesko
monesko+1
EndIf

CameraPick MouseX(),MouseY()
PO=PickedObject()
For Oma.Omat=Each Omat

If Valittu=Oma\Numero Then
If MouseHit(1) Then
Oma\SuuntaX=MouseWX()
Oma\SuuntaY=MouseWY()
Valittu=0
EndIf
EndIf
If Oma\SuuntaX<>ObjectX(Oma\Ukko) Or Oma\SuuntaY<>ObjectY(Oma\Ukko) Then
suunta=GetAngle(ObjectX(Oma\Ukko),ObjectY(Oma\Ukko),Oma\SuuntaX,Oma\SuuntaY)
RotateObject Oma\Ukko,suunta
MoveObject Oma\Ukko,Oma\Nopeus
Oma\PaikalleenAsettuminen=4000/(22*Oma\Kokemus)
Else
Oma\PaikalleenAsettuminen-1
EndIf
If Distance(ObjectX(Oma\Ukko),ObjectY(Oma\Ukko),MouseWX(),MouseWY())<35 Then

If MouseHit(1) Then
Valittu=Oma\Numero

EndIf
EndIf

CloneCameraPosition Oma\Ukko

Next Oma
DrawGame
Text 10,10,"X"+MouseWX()
Text 10,20,"Y"+MouseWY()
DrawScreen
Forever
Korjattu ja sisennetty koodi olkaa hyvä.(Huh...), vika miksi ukot eivät menny oikeeseen suuntaan oli: suunta=GetAngle(objectx(oma\ukko),objecty(oma\ukko),oma\suuntax,oma\suuntay)
vaikka sen pitää olla: suunta=-GetAngle(objectx(oma\ukko),objecty(oma\ukko),oma\suuntax,oma\suuntay)

Tein pieniä parannuksia siellä ja sanon jo nyt, että:
1. Opettele sisentämään(tämä ei ollut niinkään "halveksiva" lause)

2. Tuo sinun tapasi valita ukkelit oli vähän epätoivoinen... Olisit tehnyt pellon(field) valittu ja jos sen lähellä painetaan se on true, jos se on true sitä voidaan liikuttaa, mutta ei menetä sitä kontrollista, eli sitä ei voi enää ohjata vaan pitä valita se uusiks niinkuin sinulla oli!!!
Image
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by Latexi95 »

Kiitos nyt toimii. :lol:
Yritän muistaa laittaa nuo sisennykset. ;)
Et ole tainnut pelata Mud And Bood 2 koska et tainnut ymmärtää pelin ideaa.
Valmiissa pelissa viholliset tulevat ruudun yläreunasta niitä tulee kokoajan enemän ja enemmän.
Tarkoitus on puolustaa kenttää viimeiseen asti.
En laittanut ukon ohjausta tuolla ehdottamallasi tavalla, koska tässä tapauksessa siitä ei ole hyötyä.
Pelikenttä ei tule tuosta yhtään suuremmaksi. Kameraakaan ei lukita objektiin valmiissa pelissä.
Ukkoa liikutetaan tuon ruudun sisällä.
Ukkojen ohjaus tapahtuu nyt oikealla hiiren näppäimellä. Se on kätevämpää.
Locked