Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
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 »

regalis wrote:Kyllä, ruutu ja map piirretään. Ja light-kuva on paljon mapia pienempi. Vika taitaa sitten olla jossain muualla koodissa, pitää yrittää löytää se itse...
Kyllä se suunnilleen noin toimi ainakin minulla, joten vika löytynee muualta koodista. Joskin (johtuuko nyt kannettavan mielenkiintoisesta näytönohjaimesta vai liekö ihan CB:n feature) kuvan ympärille jäi tummemmat reunat mustasta maskiväristä.

Tällaisella väkerryksellä siis kokeilin:

Code: Select all

light = LoadImage("Media\guy.bmp")
map = LoadImage("Media\map.bmp")

DrawToImage map
    DrawGhostImage light, 10, 10, 0, 50
DrawToScreen

Repeat
    DrawImage map, 0, 0
    DrawScreen
Until GetKey()
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Sama kävi mulla, että taitaapi olla CB:ssä tuo vika.
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Tyhmät kysymykset

Post by Myst!c »

Harakka wrote:Inputti pitää laittaa looppiin.

Code: Select all

Repeat
  Repeat
    nimi$ = input("Nimesi?")
    DrawScreen
  Until Keyhit(cbkeyreturn)
  CloseInput : ClearKeys
  Text 0,0,"Moi, " + nimi$ + "!"
  DrawScreen
  Waitkey
Forever
Se oli loopissa mutta minulla oli pikkuvikoja. :D Kumma kyllä että cb ei valittanut. :S
Every Legend Has A Start!
BulletStorm

Re: Tyhmät kysymykset

Post by BulletStorm »

Taas on tekoälyn kanssa ongelmia. Siis:

Osaako kukaan selittää, miksi tämä pukkaa MAVia:

Code: Select all

    If SoundPlaying (sig) And Distance2 (pelaaja, vihu) <350 Then
       PointObject vihu, pelaaja
       MoveObject vihu, 2
    EndIf
Jos vika voi olla muualla, niin tässä on koko sorsa:

Code: Select all

'============================'
'========BulletStorm========='
'============================'
Valikko:

    SCREEN 800,600
    SetWindow "BulletStorm"
    
    tausta = LoadObject ("gfx\tausta.png")
    aloitus_nappula = LoadObject ("gfx\aloita.png")
    lopetus_nappula = LoadObject ("gfx\poistu.png")
    aloitus_pohj = LoadObject ("gfx\aloita2.png")
       ShowObject aloitus_pohj, OFF
    lopetus_pohj = LoadObject ("gfx\poistu2.png")
       ShowObject lopetus_pohj, OFF

    hiiri = LoadObject("gfx\aim.png")
    
    click = LoadSound ("sfx\click.wav")

    PositionObject aloitus_nappula, -345, 0
    PositionObject lopetus_nappula, -345,-50
    PositionObject aloitus_pohj, -345, 0
    PositionObject lopetus_pohj, -345, -50
   
  
    Repeat

    ShowMouse OFF   
    PositionObject hiiri,MouseWX(),MouseWY()
   
   
    If ObjectsOverlap (aloitus_nappula,hiiri) And MouseHit(1) Then
       PlaySound click
       Goto peli
    ElseIf ObjectsOverlap (lopetus_nappula,hiiri) And MouseHit(1) Then
       PlaySound click
       Wait 800
       End
    ElseIf ObjectsOverlap (aloitus_nappula, hiiri) Then
       ShowObject aloitus_nappula, OFF
       ShowObject aloitus_pohj, ON
    ElseIf ObjectsOverlap (lopetus_nappula, hiiri) Then
       ShowObject lopetus_nappula, OFF
       ShowObject lopetus_pohj, ON
    ElseIf ObjectsOverlap (aloitus_nappula, hiiri) = False Then
       ShowObject aloitus_nappula, ON
       ShowObject aloitus_pohj, OFF
    EndIf
    
    If ObjectsOverlap (lopetus_nappula, hiiri) = False Then
       ShowObject lopetus_nappula, ON
       ShowObject lopetus_pohj, OFF
    EndIf

    DrawScreen

    Until EscapeKey()   
    
Peli:

Type LUODIT
   Field obj
EndType

Type VIHUT
   Field vihu1
   Field vihu2
   Field pati
   Field enut
EndType
'============================
FrameLimit 40
   SCREEN 800, 600
SetWindow "BulletStorm"

//Muuttujat:
health# = 100
ammukset = 30

//Health Bar:
healthbar = LoadImage ("gfx\healthbar.png")

//Lataa pelaaja:
pelaaja = LoadObject ("gfx\soldier.png", 72)

//Lataa vihut:
vihu = LoadObject ("gfx\sissi.png", 72)
   ShowObject vihu, OFF

//Lataa luoti ja tee siitä näkymätön:
luoti = LoadObject ("gfx\luoti.png")
   ShowObject luoti, OFF

//Lataa kaikki äänet:
lataus = LoadSound ("sfx\reload.wav")
sig = LoadSound ("sfx\sig.wav")
ak47 = LoadSound ("sfx\ak47.wav")

//Lataa hiiren kuvake/tähtäin:
tähtäin = LoadImage ("gfx\aim.png")

//Lataa mappi ja sen textuuri:
maailma = LoadMap ("world\woods.til","world\tilesetwoods.png")
   PlayObject maailma, 0, 0, 0, 5
   MaskObject maailma, 255, 0, 252

PositionObject vihu, 300, 0

SetupCollision pelaaja,maailma,2,4,2
SetupCollision vihu,maailma,2,4,2
SetupCollision pelaaja,vihu,2,2,2
SetupCollision vihu,pelaaja,2,2,2

CameraFollow pelaaja, 1, 70

Repeat

   ObjectOrder maailma, -1 

   RotateObject pelaaja, GetAngle(ObjectX(pelaaja),-ObjectY(pelaaja),MouseWX(),-MouseWY())//Pelaaja osoittaa tähtäintä

   ShowMouse tähtäin//Näyttää hiiren, tässä tapauksessa tähtäimen

   //Liikkuminen
   If UpKey() Then MoveObject pelaaja, 5
   If DownKey() Then MoveObject pelaaja, -3
   
   //Ampuminen
    If MouseDown(1) And reload=0
    
        newLuoti.LUODIT = New(LUODIT)
        newLuoti\obj = CloneObject(luoti)
        RotateObject newLuoti\obj, ObjectAngle (pelaaja)
        CloneObjectPosition newLuoti\obj, pelaaja
        CloneObjectOrientation newLuoti\obj, pelaaja
        MoveObject newLuoti\obj, 24
        PlaySound sig
        ammukset -1
        
        //Ammutaan 30 luotia, odotetaan ja ammutaan uudestaan
        If ammuttu >= 30 Then ammuttu = 0
        ammuttu + 1
        If ammuttu >= 30 Then reload = 100 Else reload=6.5 'aseen lataus 
        If ammuttu >= 30 Then PlaySound lataus
        If ammuttu >= 30 Then ammukset + 30
    EndIf


    i = 0
    For iLuoti.LUODIT = Each LUODIT
        
        MoveObject iLuoti\obj, 10//vauhti = 6
        //poistaa luodin jos se menee
        //liian kauas       
        If Distance2(iLuoti\obj,pelaaja)>400 Then 
            DeleteObject iLuoti\obj
            Delete iLuoti
        ElseIf GetMap (2, ObjectX(iLuoti\obj), objectY(iLuoti\obj)) Then 
            DeleteObject iLuoti\obj
            Delete iLuoti
        ElseIf ObjectsOverlap (iLuoti\obj, vihu, 3) Then
            DeleteObject iLuoti\obj
            Delete iLuoti
        EndIf    
      
        i=i+1
        
    Next iLuoti
    
    If reload >0 Then reload=reload -1
    
    If ObjectVision (vihu,pelaaja, 75, 500) Then 
        PointObject vihu, pelaaja
        MoveObject vihu, 2
        ShowObject vihu, ON
    ElseIf ObjectVision (pelaaja,vihu, 75, 500) Then 
        ShowObject vihu, ON
    ElseIf Distance2 (vihu, pelaaja) =<150 Then
        MoveObject vihu, 2
        PointObject vihu, pelaaja
    EndIf
    
    If SoundPlaying (sig) And Distance2 (pelaaja, vihu) <350 Then
       PointObject vihu, pelaaja
       MoveObject vihu, 2
    EndIf
    
DrawGame


//Tehdään Health Bar
Color 0, 163, 255
   Box 630,540,health,14.5
   DrawImage healthbar, 625, 482
   Text 675, 510, "" + ammukset
   
UpdateGame
    
   DrawScreen
Forever  
 
    
Function ObjectVision( _obj, _obj2, _fov = 90, _dist = 1000 )
    If Distance2( _obj, _obj2 ) < _dist And ObjectSight( _obj, _obj2 ) Then
        _angle = WrapAngle( ( GetAngle2( _obj, _obj2 ) - ObjectAngle( _obj ) ) )
        _sight = _fov / 2
      
        If _angle < _sight Or _angle > 360 - _sight Then
            Return True
        EndIf  
    EndIf
End Function
En ole kauheasti jaksanut kommentteja sinne kirjoittaa :roll:
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Äänien toistaminen tehdään vähän eri tavalla.

Code: Select all

sig_sound = LoadSound("media/sheep.wav")
Repeat
    If mousehit(1) then
        sig_channel = PlaySound(sig_sound)
    EndIf
    
    If SoundPlaying(sig_channel) Then
        Text 5,5,"Bää!"
    Else
        Text 5,5,"Klikkaa."
    EndIf
    
    DrawScreen
Forever
Eli SoundPlaying() vaatii äänikanavan, ei master-ääntä.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
BulletStorm

Re: Tyhmät kysymykset

Post by BulletStorm »

Harakka wrote:Äänien toistaminen tehdään vähän eri tavalla.

Code: Select all

koodia...
Eli SoundPlaying() vaatii äänikanavan, ei master-ääntä.
Ahaa, just just. No, se toimi. Kiitos. Tästä topikista onkin ollut paljon hyötyä :D
BulletStorm

Re: Tyhmät kysymykset

Post by BulletStorm »

Olen nyt yrittänyt muuttaa vihollisen ampumisessa reloadia (ei, se ei käytää samaa kuin pelaaja, vaan se käyttää reload2:sta), mutta vihun ampuminen ei hidastu. Panokset lentävät lähes toisissaan kiinni ja äänikin kuulostaa siltä, että joku käyttäisi moottorisahaa. Kukaan sattuisi tietämään, mistä kiikastaa? :|

Tässä vielä ampumiskohta:

Code: Select all

    If Distance2 (vihu, pelaaja) =<200 Then
    
        newPati.VIHUT = New(VIHUT)
        newPati\pati = CloneObject(luoti)
        CloneObjectPosition newPati\pati, vihu
        CloneObjectOrientation newPati\pati, vihu
        MoveObject newPati\pati, 24
        PlaySound ak47
        
        //Ammutaan 30 luotia, odotetaan ja ammutaan uudestaan
        If ammuttuv >= 30 Then ammuttuv = 0
        ammuttuv + 1
        If ammuttuv >= 30 Then reload2 = 100 Else reload2 = 6.5 'aseen lataus 
        If ammuttuv >= 30 Then PlaySound lataus
    EndIf


    i = 0
    For iPati.VIHUT = Each VIHUT
        
        MoveObject iPati\pati, 10//vauhti = 6
        //poistaa luodin jos se menee
        //liian kauas       
        If Distance2(iPati\pati, vihu)>400 Then 
            DeleteObject iPati\pati
            Delete iPati
        ElseIf GetMap (2, ObjectX(iPati\pati), ObjectY(iPati\pati)) Then 
            DeleteObject iPati\pati
            Delete iPati
        ElseIf ObjectsOverlap (iPati\pati, pelaaja, 3) Then
            DeleteObject iPati\pati
            Delete iPati
        EndIf    
      
        i=i+1
        
    Next iPati
    
    If reload2 >0 Then reload2 = reload2 -1
Itse siis olen kokeillut vaihtaa realod2:n lukuja, mutta ne eivät ole vaikuttaneet millään tavalla :roll:

E: Ja anteeksi tämä tuplaposti.
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

Tuossa koodinpätkässä ainakaan ei ole tarkistettu onko reload nollassa.

Code: Select all

If Distance2 (vihu, pelaaja) =<200 and reload2 < 1 Then
CoolBasic henkilökuntaa
Kehittäjä
BulletStorm

Re: Tyhmät kysymykset

Post by BulletStorm »

TheFish wrote:Tuossa koodinpätkässä ainakaan ei ole tarkistettu onko reload nollassa.

Code: Select all

If Distance2 (vihu, pelaaja) =<200 and reload2 < 1 Then
Uppista. Näin näköjään on päässyt käymään :oops: Kiitti.
Korsto
Newcomer
Posts: 7
Joined: Fri Jan 04, 2008 4:19 pm

Re: Tyhmät kysymykset

Post by Korsto »

oon rakentelemassa vuoropohjaista taistelu systeemiä teksti pohjaiseen roolipeliin mutta se ei vaan suostu toimiin et jos viittisitte jelppiä miua sen kans

tarkotus ois et siinä on kaks iskua ja nuoli joka osoittaa jompaakumpaa ja sitä nualta vois siirtää nuali näppäimillä
painamalla välilyöntiä valitaan se isku jota halutaan käyttää ja sitten ruutuun tulee kaikenlaista epämääräistä tekstiä
jolloin painamalla mitä tahansa näppäintä se palaa takaisin iskuvalikkoon

Code: Select all

SCREEN 1000,1000


valikko=10
osoitin=0
                    'asetetaan muuttujat'
elämä=10
mana=3

Repeat

taistelu:

Text 100,100, elämä               'asetetaan elämä numerot'
Text 100,120, mana                'asetetaan mana numerot'


If DownKey() And valikko=10 Then valikko+20    'asetetaan nuolen siirtyminen alas'
If DownKey() And osoitin=0 Then osoitin+1

If UpKey() And valikko=30 Then valikko-20  'asetetaan nuolen siirtyminen ylös'
If UpKey() And osoitin=1 Then osoitin-1    

Text 10,10, "iske"
Text 10,30, "taio (-1 mana)"           'asetetaan kaiken maailman epämääräisiä tekstejä ja nuoli'
Text 125, valikko, "<--"

If KeyDown(cbkeySpace) And osoitin=0 Then Goto isku    'asetetaan valinta näppäin'
If KeyDown(cbkeySpace) And osoitin=1 Then Goto taika

DrawScreen
UpdateGame 

Forever 
 
 Isku:

ClearKeys 
 
 If elämä=0 Then MakeError "se kuoli" Else elämä-1
 Text 300,300, "1 vahinkoa (paina jotain näppäintä jatkaaksesi)"   'asetetaan isku'

WaitKey 
If elämä=0 Then MakeError "se kuoli"
 Goto taistelu
 
 taika:
 If mana=0 Then Goto taistelu
 elämä-2
 mana-1                                              'asetetaan taika'
 
 If mana=0 Then Text 100,150,"mana loppui"
 If elämä=-1 Then MakeError "overkill"
 If elämä=0 Then MakeError "se kuoli"

If mana>0 Then Text 300,300, "2 vahinkoa (paina jotain näppäintä jatkaaksesi)" 
 
 WaitKey
 Goto taistelu
 
eli jos osaa auttaa niin pistää vaan viestiä tulemaan kiitos jo näin etukäteen
1|= y()u (4|\| r3@d 7#][5, y0|_| /\r3 @ IVI0/\/$+3|2 &33|<
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Isku- ja taistelu-kohdista puuttui DrawScreenit ennen Waitkeytä. Lisäsin ne ja nyt vaikuttaa toimivan.

Code: Select all

SCREEN 1000,1000


valikko=10
osoitin=0
                    'asetetaan muuttujat'
elämä=10
mana=3

Repeat

taistelu:

Text 100,100, elämä               'asetetaan elämä numerot'
Text 100,120, mana                'asetetaan mana numerot'


If DownKey() And valikko=10 Then valikko+20    'asetetaan nuolen siirtyminen alas'
If DownKey() And osoitin=0 Then osoitin+1

If UpKey() And valikko=30 Then valikko-20  'asetetaan nuolen siirtyminen ylös'
If UpKey() And osoitin=1 Then osoitin-1    

Text 10,10, "iske"
Text 10,30, "taio (-1 mana)"           'asetetaan kaiken maailman epämääräisiä tekstejä ja nuoli'
Text 125, valikko, "<--"

If KeyDown(cbkeySpace) And osoitin=0 Then Goto isku    'asetetaan valinta näppäin'
If KeyDown(cbkeySpace) And osoitin=1 Then Goto taika

DrawScreen
UpdateGame 

Forever 

Isku:

ClearKeys 

If elämä=0 Then MakeError "se kuoli" Else elämä-1
Text 300,300, "1 vahinkoa (paina jotain näppäintä jatkaaksesi)"   'asetetaan isku'
DrawScreen
WaitKey 
If elämä=0 Then MakeError "se kuoli"
Goto taistelu

taika:
If mana=0 Then Goto taistelu
elämä-2
mana-1                                              'asetetaan taika'

If mana=0 Then Text 100,150,"mana loppui"
If elämä=-1 Then MakeError "overkill"
If elämä=0 Then MakeError "se kuoli"

If mana>0 Then Text 300,300, "2 vahinkoa (paina jotain näppäintä jatkaaksesi)" 
DrawScreen
WaitKey
Goto taistelu
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Korsto
Newcomer
Posts: 7
Joined: Fri Jan 04, 2008 4:19 pm

Re: Tyhmät kysymykset

Post by Korsto »

homma on selvä ny niinkuin pihvi
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Tyhmät kysymykset

Post by Myst!c »

Terve taas tyhmien kysymyksien parissa....
Minulla olisi TODELLA tyhmä kysymys enkä
ole löytänyt ratkaisua.. Eli en saa ukkoa
näyttämään siltä että se kääntyisi. :D
Siis kuva ei käänny mutta se silti kääntyy
liikkuessa. Eh.. Koodia.. -.-

Code: Select all


ownag3lyönti=LoadAnimObject("media/rpguy1.bmp",30,25,0,2)
    MaskObject ownag3lyönti, cbmagenta 
    ShowObject ownag3lyönti, OFF 

ownag3=CloneObject(ownag3lyönti)

Repeat 

Text 0,0, FPS ()

    If KeyDown (cbkeyA) Then TurnObject ownag3, 4
    If KeyDown (cbkeyD) Then TurnObject ownag3, -4
    
    If KeyDown (cbkeyW) Then MoveObject ownag3, 2
    If KeyDown (cbkeyS) Then MoveObject ownag3, -2

DrawScreen
Forever 
Kiitos etukäteen ja muuttujien nimet ovat
tyhmiä mutta älkää välittäkö. :)
Every Legend Has A Start!
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: Tyhmät kysymykset

Post by Misthema »

Jos vaikka määrittäisit objektin pyörimisen sitä ladatessa:

Code: Select all

ownag3lyönti=LoadAnimObject("media/rpguy1.bmp",30,25,0,2,   72     )
Tuossa tuo luku 72 määrittää sen.
jergulis
Newcomer
Posts: 2
Joined: Wed Jan 30, 2008 3:08 am

Re: Tyhmät kysymykset

Post by jergulis »

en saa peliä pyörimään: "can't load object": ........ :?:

Toimi vielä aamulla ennenkuin tallensin. :roll:
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Huh, tätä kysytään kyllä todella usein. Hakua käyttämällä olisi varmaan löytynyt joku ketju, jossa olisi jo valmiina vastaus. Ja vastaushan on:
Jos koodissasi lukee esimerkiksi

Code: Select all

ukko = LoadObject("media/guy.bmp")
Peli etsii kuvaa media-kansiosta. Media-kansion pitää olla sen kansion sisällä, johon koodi on tallennettu. Eli jos tallensit koodin hakemistoon D:\Peli\, pitää ukon olla polussa D:\Peli\Media\guy.bmp. Selvensikö asiaa?
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Turtle Productions
Member
Posts: 91
Joined: Thu Dec 20, 2007 11:11 am
Location: Espoo

Re: Tyhmät kysymykset

Post by Turtle Productions »

Voiko tällaiseen tavalliseen bittimappiin laittaa törmäys vain mustista kohdista törmäyksen. Aloitin juuri tekemään uutta rallipeliäni...
Koodini:

Code: Select all

Include "sdk/include/cbGravitationPhysics.cb"
SCREEN 800,600

// Tehdään taustakuva

ruoho = MakeObjectFloor ()
nurmikko = LoadImage ("Media\rallymap.bmp")
PaintObject ruoho, nurmikko


alus = LoadObject("Media/car2.bmp",72): ObjectFloat alus, .00001

Repeat

    If LeftKey() Then TurnObject alus, 3
    If RightKey() Then TurnObject alus, -3
    If UpKey() Then ThrustObject(alus,.1)
    If DownKey() Then ThrustObject(alus,-.1)

    UpdateSpace()
    CloneCameraPosition alus

    DrawScreen
Forever
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
|T|u|r|t|l|e| |P|r|o|d|u|c|t|i|o|n|s|
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: Tyhmät kysymykset

Post by M.R »

CyberGamer wrote:Voiko tällaiseen tavalliseen bittimappiin laittaa törmäys vain mustista kohdista törmäyksen. Aloitin juuri tekemään uutta rallipeliäni...
Koodini:

Code: Select all

Include "sdk/include/cbGravitationPhysics.cb"
SCREEN 800,600

// Tehdään taustakuva

ruoho = MakeObjectFloor ()
nurmikko = LoadImage ("Media\rallymap.bmp")
PaintObject ruoho, nurmikko


alus = LoadObject("Media/car2.bmp",72): ObjectFloat alus, .00001

Repeat

    If LeftKey() Then TurnObject alus, 3
    If RightKey() Then TurnObject alus, -3
    If UpKey() Then ThrustObject(alus,.1)
    If DownKey() Then ThrustObject(alus,-.1)

    UpdateSpace()
    CloneCameraPosition alus

    DrawScreen
Forever
CB.en omalla törmäys tunnuksella ei onnistu(ainakaan FPS:sää viemättä) mutta omalla onnistuu.Tuosta cbGravitationPhysics.cb" jutusta en tiedä(tuskimpa tarvitset sitä) koska luultavasti käyttää CB:en omaa törmäys tunnistusta.Ja tuo MakeObjectFloor() homma vaikeuttaa törmäys tunnistuksen tekoa.En nyt anna suoraa vastausta mutta hommaan tarvitaan seuraavat functiot/komennot:
PICKIMAGECOLOR
getRGB
katso kummankin komennon ohje niin homma selviää koodaamalla.
PS.bittimap on bitmap ja suomennettuna bittikartta.Ja kun CB:lä ladataan jokin kuva LoadImage functiolla niin kaikki formaatit käyttäytyvät samalla tavalla CB:sä.
beg
Newcomer
Posts: 19
Joined: Fri Dec 14, 2007 2:08 pm

Re: Tyhmät kysymykset

Post by beg »

Eli tarkoitus olisi saada tuo kipinä välähtämään aina kun ammus osuu rajojen ulkopuolelle ja miten saan näytettyä satunnaisesti joistain viidestä eri kipinästä? Olen huono selittämään mutta tuo koodi voi auttaa ymmärtämään :(.

Code: Select all

Type AMMUS 
Field obj 
EndType 



alusta=LoadObject ("media\alusta.bmp")
tykki=LoadObject ("media\tykki.bmp",72)
hiiri=LoadObject ("media\hiiri.bmp")
pati=LoadObject("Media\bullet.bmp")
tuli1=LoadObject("media\tuli1.bmp")
tuli2=MakeObject ()
ShowObject pati,OFF 


ShowMouse OFF 

Repeat 

Text 0,0,FPS() 
PositionObject hiiri ,MouseWX(),MouseWY()
PointObject tykki ,hiiri

 If MouseDown(1) And reload=0 Then    
        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati) 
        
        CloneObjectPosition luoti\obj,tykki                
        
        CloneObjectOrientation luoti\obj,tykki            
        reload=5      
    EndIf
    
    If reload>0 Then reload=reload-1

    
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,10
        
         If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
            ShowObject tuli1,ON 
            CloneObjectPosition tuli1,luoti\obj 
            DeleteObject luoti\obj 
            Delete luoti 
            Else 
            ShowObject tuli1,OFF 
        EndIf        
    Next luoti
            
            
            
            
            

DrawScreen 

Forever 
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tyhmät kysymykset

Post by tuhoojabotti »

beg wrote:Eli tarkoitus olisi saada tuo kipinä välähtämään aina kun ammus osuu rajojen ulkopuolelle ja miten saan näytettyä satunnaisesti joistain viidestä eri kipinästä? Olen huono selittämään mutta tuo koodi voi auttaa ymmärtämään :(.

Code: Select all

koodia...
dim tuli(4)

for i=0 to 4
tuli(i)=loadobject("media/tuli"+i+".PNG",72)
next i

showobject tuli(rand(4))

noin minä teen esim aseen päästä tulevat lieskat :P
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Locked