Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi »

Code: Select all

    If MouseWX()<ObjectX(vihu_obj(i))+20 And MouseWX()>ObjectX(vihu_obj(i))-20 And MouseWY()<ObjectY(vihu_obj(i))+20 And MouseWY()>ObjectX(vihu_obj(i))-20 And MouseHit(1) Then
        DrawImage kuollutvihu,ObjectX(vihu_obj(i)),ObjectY(vihu_obj(i))
        DeleteObject vihu_OBJ(i)
                
        vihu_ELOSSA(i)=OFF
        
            tapot=tapot+1
       
            EndIf
Kuka tos vielä tökkii?
Ei piirrä kuvaa,jos vihu joka ammutaan on ihan ruudun keskellä niin silloin se saattaa välähtää vasemmassa reunassa,muuten ei.

Niin väsyny ettei ite jaksa... :lol:


Edit:
Oho,taisin tajuta.
Auttaiskohan drawtoworld...
Oon aika tyhmä.
Huuda mun ip:tä!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Näyättää kovasti, että yrität piirtää kuvaa maailman koordinaatteihin. Muuta ne ruutukoordinaateiksi. (vai saikos DrawToWorldillä vaihdettua myös kuvien piirron maailmankoordinaatteihin?)

EDIT: Niin, ja kuvahan pysyy näytöllä yhden framen ajan. Suosittelisin maalaamaan objektin kuolleen ukon kuvalla ja jättämään paikalleen. Sitten vain objektin poistamiselle joku countteri ja voilá.
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi »

koodaaja wrote:Näyättää kovasti, että yrität piirtää kuvaa maailman koordinaatteihin. Muuta ne ruutukoordinaateiksi. (vai saikos DrawToWorldillä vaihdettua myös kuvien piirron maailmankoordinaatteihin?)

EDIT: Niin, ja kuvahan pysyy näytöllä yhden framen ajan. Suosittelisin maalaamaan objektin kuolleen ukon kuvalla ja jättämään paikalleen. Sitten vain objektin poistamiselle joku countteri ja voilá.
Juu,älysin ton mutta kaikki bugaa:D

Esim:
Klikkaan noin 100 pikseliä jonkun vihun alapuolelta,se "tappaa" sen vihun?
Joskus saattaa tappaa siitä läheltä(kumminkin yli 60 pikselin matkoilta) jonkun vihun myös,kerralla monta;D
No okei,ei se ole bugi,vaan feature.
Kerron pelaajille että juoneen kuuluu se että aseessa on vähän tähtäys-/toimintaonkelmia.


No jos joku jaksaa niin tämä kohta bugaa...

Code: Select all

Päivitävihut:

    For i=1 To 30
        If vihu_ELOSSA(i) Then
           TranslateObject vihu_OBJ(i),0,-2
        
        PlayObject vihu_obj(i),0,2,0.1
            
        
       If MouseWX()<ObjectX(vihu_obj(i))+20 And MouseWX()>ObjectX(vihu_obj(i))-20 And MouseWY()<ObjectY(vihu_obj(i))+20 And MouseWY()>ObjectX(vihu_obj(i))-20 And MouseHit(1) Then
       
        DeleteObject vihu_OBJ(i)
                
        vihu_ELOSSA(i)=OFF
       
            tapot=tapot+1
           
            EndIf
           
            EndIf
     
    Next i
 
Return 
Huuda mun ip:tä!
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Tyhmät kysymykset

Post by nevssons »

Execute mavittaa...
Tällä kertaa teen musiikintoisto ohjelmaa. Kun siinä valitsee "Luo soittolista" niin avataan samassa kansiossa oleva ohjelma joka tekee soittolistoja.
Ohjelma käynnistyy kuten pitääkin, mutta sen avaavassa ohjelmassa tulee mav. Huomasin että kun poistan Executen mavia ei tule. Onko tälle selitystä?
Koodarina kohtalainen, henkilönä vittumainen
Image
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset

Post by SPuntte »

Voiko ForceVariableDeclaration-asetus päällä käyttää sijaintilippuja (label)? sis toimiiko Gosub ja Goto?
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Nemesis
Member
Posts: 51
Joined: Sat May 17, 2008 1:54 pm

Re: Tyhmät kysymykset

Post by Nemesis »

SPuntte wrote:Voiko ForceVariableDeclaration-asetus päällä käyttää sijaintilippuja (label)? sis toimiiko Gosub ja Goto?
Ilmeisesti ei. Varmaan jokin bugi.
Tämä koodi ilmoittaa virhekoodin 37.

Code: Select all

Repeat
	If KeyHit(28) Then Goto moi
	If KeyHit(1) Then Goto loppu
	DrawScreen
Forever

moi:
	Print "moi"
	WaitKey

loppu:
	End
Hassu juttu :D
Asian tuntian oikein kirjoitus ohjeet:
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi »

Miten sais toimii?

Code: Select all

If upkey() and leftkey() then translateobject ukko,2,2
Vika siinä ettei cb voi varmaan tunnistaa kahta näppäintä yhtäaikaa???
Vaihtoehtoinen menetelmä???:D
En haluais laittaa kahdeksaa näppäintä liikkumiselle...
Huuda mun ip:tä!
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset

Post by Sly_Jack0 »

Jos halusit ukon liikkumaan siis vinoon niin näin ainakin onnistuu:

Code: Select all

    If UpKey() Then TranslateObject ukko1,0,2
    If DownKey() Then TranslateObject ukko1,0,-2
    If LeftKey() Then TranslateObject ukko1,-2,0
    If RightKey() Then TranslateObject ukko1,2,0
    
Tossa kun painat vaikka ylös ja vasemmalle niin se liikkuu vasemmalle ylös.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: Tyhmät kysymykset

Post by Marcoder »

Sly_Jack0 wrote:Jos halusit ukon liikkumaan siis vinoon niin näin ainakin onnistuu:
tai näin:

Code: Select all

TranslateObject ukko, (RightKey() - LeftKey()) * 2, (UpKey() - DownKey()) * 2
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi »

Tarkotan että ukolla on kahdeksan suuntaa,ja kun painan alas-nuolta ja vasemmalle-nuolta niin se liikkuu vasemmalle alas.
Tuollahan ton sais vain neljään suuntaan...
Huuda mun ip:tä!
Jambo
Member
Posts: 75
Joined: Sat Apr 05, 2008 5:57 pm

Re: Tyhmät kysymykset

Post by Jambo »

Olw1 wrote:Tarkotan että ukolla on kahdeksan suuntaa,ja kun painan alas-nuolta ja vasemmalle-nuolta niin se liikkuu vasemmalle alas.
Tuollahan ton sais vain neljään suuntaan...
Se liikkuu myös kulmittain, koska se lukee niitä näppäimiä samaan aikaan.
Eli jos painetaan vasemmalle ukko liikkuu vasemmalle. Ja jos taas painetaan alas, ukko liikkuu alas. Mutta jos painetaan kumpaakin samaan aikaan, ukko liikkuu alas JA vasemmalle, eli kulmittain.
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Tyhmät kysymykset

Post by nevssons »

Joskus mulla lakkaa toimimasta coolbasikin äänet. Onko tähän syytä? Miten saa äänet takaisin?

Ja vielä toinen kysymys:
Miten saa tarkastettua soiko CD-raita? (SoundPlayinillä ei toiminu!)
Koodarina kohtalainen, henkilönä vittumainen
Image
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset

Post by SPuntte »

Olw1 wrote:Miten sais toimii?

Code: Select all

If upkey() and leftkey() then translateobject ukko,2,2
Vika siinä ettei cb voi varmaan tunnistaa kahta näppäintä yhtäaikaa???
Vaihtoehtoinen menetelmä???:D
En haluais laittaa kahdeksaa näppäintä liikkumiselle...
Tässä yksinkertaisin ratkaisu mitä keksin siten, että kulmittain liikkuminen tapahtuu samalla nopeudella kuin sivuille.

Code: Select all

Dim movement, xMove, yMove, Sqrt2 As Float

//liikkuvuus, noepus
movement = 1

//Väliaikaismuuttujat, ettei funktiokutsuja tule turhaan
keyU = UpKey()
keyD = DownKey()
keyR = RightKey()
keyL = LeftKey()
Sqrt2 = Sqrt(2)

If keyU And keyR Then
    xMove =  movement/Sqrt2
    yMove =  movement/Sqrt2
ElseIf keyU And keyL Then
    xMove = -movement/Sqrt2
    yMove =  movement/Sqrt2
ElseIf keyD And keyR Then
    xMove =  movement/Sqrt2
    yMove = -movement/Sqrt2
ElseIf keyD And keyL Then
    xMove = -movement/Sqrt2
    yMove = -movement/Sqrt2
ElseIf keyU Then
    xMove =  0
    yMove =  movement
ElseIf keyD Then
    xMove =  0
    yMove = -movement
ElseIf keyR Then
    xMove =  movement
    yMove =  0
ElseIf keyL Then
    xMove = -movement
    yMove =  0
Else
    xMove = 0
    yMove = 0
EndIf

TranslateObject [objekti], xMove, yMove
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: Tyhmät kysymykset

Post by Marcoder »

SPuntte wrote:Tässä yksinkertaisin ratkaisu mitä keksin siten, että kulmittain liikkuminen tapahtuu samalla nopeudella kuin sivuille.
Tuon iffipurkkahässäkän voi korvata vaikka tällä:

Code: Select all

xMove = (RightKey() - LeftKey()) * movement
yMove = (UpKey() - DownKey()) * movement
If xMove <> 0 And yMove <> 0 Then 
    xMove = xMove / sqrt2
    yMove = yMove / sqrt2
EndIf
Twerppi
Newcomer
Posts: 5
Joined: Wed Jun 04, 2008 3:25 pm

Re: Tyhmät kysymykset

Post by Twerppi »

Mun pelissä on jotain vikaa: siinä ei tule poimimista jos robo menee kohtaan, jossa on pallo. Mikä vikana?
EDIT:

Pelissä onkin yksi pallo joka toimii puoliksi: jos pallon päälle menee, tulee mav.
Miten saan tyypin toimimaan?

Pelin koodi:

Code: Select all

//Include "päävalikko.cb"

Const PAINOVOIMA = -0.5 
                                                
yPlus#=0                

SCREEN 1024,768,0

SetWindow "PELINNIMI"
FrameLimit 40 


peli:

kentta1=LoadMap("map123.til","tileset.bmp")
PositionObject kentta1,2300,-400
PlayObject kentta1,0,0,0.5

oikea=LoadAnimObject("oikeellerobo.bmp",55,55,0,10)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 

vasen=LoadAnimObject("vasemmallerobo.bmp",55,55,0,10)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51

robo=CloneObject(oikea)
SetupCollision robo,kentta1,1,4,2
ObjectRange robo,30,51 

pallo=LoadObject ("pallo.bmp")
ShowObject pallo,OFF

Dim taulukko (1,39) As integer
taulukko (0,0) = 125 : taulukko (1,0) = -80
taulukko (0,1) = 1290 : taulukko (1,1) = 210
taulukko (0,2) = 1305 : taulukko (1,2) = -785
taulukko (0,3) = 1630 : taulukko (1,3) = -785
taulukko (0,4) = 2105 : taulukko (1,4) = -495
taulukko (0,5) = 2900 : taulukko (1,5) = -400
taulukko (0,6) = 2370 : taulukko (1,6) = -112
taulukko (0,7) = 3645 : taulukko (1,7) = -240
taulukko (0,8) = 3675 : taulukko (1,8) = -240
taulukko (0,9) = 2705 : taulukko (1,9) = -240
taulukko (0,10) = 3135 : taulukko (1,10) = -910
taulukko (0,11) = 3965 : taulukko (1,11) = -910
taulukko (0,12) = 3965 : taulukko (1,12) = -690
taulukko (0,13) = 2965 : taulukko (1,13) = -590
taulukko (0,14) = 3135 : taulukko (1,14) = -690
taulukko (0,15) = 3135 : taulukko (1,15) = -590
taulukko (0,16) = 3130 : taulukko (1,16) = 50
taulukko (0,17) = 4315 : taulukko(1,17) = 245
taulukko (0,18) = 4600 : taulukko (1,18) = 210
taulukko (0,19) = 4475 : taulukko (1,19) = 110
taulukko (0,20) = 4475 : taulukko (1,20) = -80
taulukko (0,21) = 4540 : taulukko (1,21) = 112
taulukko (0,22) = 4540 : taulukko (1,22) = -80
taulukko (0,23) = 4285 : taulukko (1,23) = -175
taulukko (0,24) = 4795 : taulukko (1,24) = -175
taulukko (0,25) = 4285 : taulukko (1,25) = -365
taulukko (0,26) = 4800 : taulukko (1,26) = -365
taulukko (0,27) = 4090 : taulukko (1,27) = -975
taulukko (0,28) = 4540 : taulukko (1,28) = -975
taulukko (0,29) = 1630 : taulukko (1,29) = 145
taulukko (0,30) = 1310 : taulukko (1,30) = 560
taulukko (0,31) = 2650 : taulukko (1,31) = 625
taulukko (0,32) = 2875 : taulukko (1,32) = 720
taulukko (0,33) = 2875 : taulukko (1,33) = 525
taulukko (0,34) = 2490 : taulukko (1,34) = 365
taulukko (0,35) = 1415 : taulukko (1,35) = -60
taulukko (0,36) = 2145 : taulukko (1,36) = 112
taulukko (0,37) = 4980 : taulukko (1,37) = -970
taulukko (0,38) = 1275 : taulukko (1,38) = 10
taulukko (0,39) = 1690 : taulukko (1,39) = 112

Type keräys
Field obj
EndType    

For i= 0 To 39 
obj= CloneObject (pallo)
PositionObject obj, taulukko(0,i), taulukko(1,i)
ShowObject obj,ON
Next i


Repeat

If ObjectsOverlap (obj,robo,2) Then DeleteObject obj



    vauhti=0

    If RightKey() Then 
        
        PaintObject robo,oikea
        If maassa Then PlayObject robo,2,11,0.25
        vauhti=6
    ElseIf LeftKey() Then
        
        PaintObject robo,vasen 
        If maassa Then PlayObject robo,2,11,0.25
        vauhti=-6 
    Else 
        
        PlayObject robo,0
    EndIf
    
    
    TranslateObject robo,vauhti,yPlus#
    yPlus=yPlus+PAINOVOIMA  
    
    
    UpdateGame 
    CloneCameraPosition robo 
    
    maassa=0 
    törmäykset=CountCollisions(robo)
    
    For i=1 To törmäykset
        If GetCollision(robo,i)=kentta1
            
            If CollisionAngle(robo,i)=90 Then 
                yPlus#=-1
                maassa=1 
            EndIf
            
            If CollisionAngle(robo,i)=270 Then 
                yPlus#=-1
            EndIf
        EndIf
    Next i 
       
    
    If törmäykset=0 Then PlayObject robo,12,0
    
    
    If UpKey() And maassa Then 
        yPlus#=13
    EndIf


If GetMap(3,ObjectX(robo),ObjectY(robo))=2 Then End
If GetMap(3,ObjectX(robo),ObjectY(robo))=1 Then End


    DrawScreen 


Until EscapeKey()
Pekka

Re: Tyhmät kysymykset

Post by Pekka »

Kuinkas kuvaa saa pyöritettyä, kun sitä ladatessahan ei voi määrittää pyöristysarvoa, niinkuin loadobjectissa voi, eikä ole myöskään mitään turnimage komentoa?
Nemesis
Member
Posts: 51
Joined: Sat May 17, 2008 1:54 pm

Re: Tyhmät kysymykset

Post by Nemesis »

ROTATEIMAGE kuvamuuttuja, kulma
Asian tuntian oikein kirjoitus ohjeet:
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
Pekka

Re: Tyhmät kysymykset

Post by Pekka »

Juu, mutta eikös tuolla saa kuvan käännettyä vain johonkin tiettyyn kulmaan? Tarkoitin että sitä voisi käyttää niin kuin turnobjectia.
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi »

Code: Select all

kulma=0
Repeat
if upkey() then kulma=kulma+1
if downkey() then kulma=kulma-1
rotateimage kuva,kulma
Saattaa olla hidas.
En testannut tuota,pitäs toimia.



Eikös cb-kirjastossa ollu funktiota?
Huuda mun ip:tä!
Pekka

Re: Tyhmät kysymykset

Post by Pekka »

Eikös tuo ole sama kuin laittaisi:
If upkey() then rotateimage kuva, 1
Locked