Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset

Post by temu92 »

No kyllä sitä nyt vähän itsekin saisi yrittää. Purkalla käänsin tuon Jaren funktion toisin perin, ei varmaan ihan nopein eikä toimi kuin isoilla kirjaimilla (alkuperäisestä koodista johtuen).

Code: Select all

Function AsciiToScan(s)
	ascii$ = "000049050051052053054055056057048043145000000081087069082084089085073079080194000000000065083068070071072074075076214196167000000090088067086066078077044046045000042000032000000000000000000000000000000000000000055056057045052053054043049050051048044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047"
	For i = 1 To Len(ascii) / 3
		ascchr	= Int(Mid(ascii, i*3-2, 3))
		
		If ascchr = s Then Return i
	Next i
End Function
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

temu92 wrote:No kyllä sitä nyt vähän itsekin saisi yrittää. Purkalla käänsin tuon Jaren funktion toisin perin, ei varmaan ihan nopein eikä toimi kuin isoilla kirjaimilla (alkuperäisestä koodista johtuen).
Kiitoksia :). Ei funktion tarvitsekaan olla nopea, kun sitä ei käytetä loopin sisällä, vaan vain asetusten laitossa. Tämän avulla voin heivata peleistäni purkkaiset ASCII-viritykset ja GetKey():t pois :geek:
(ja eihän KeyHittikään ota kuin isoja kirjaimia, vai..? Ainakin siinä SCAN-koodien taulukossa näkyy jokaisen kirjaimen kohdalla vain yksi arvo...)
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
Maamyyrä
Newcomer
Posts: 27
Joined: Thu Jun 05, 2008 10:59 am

Re: Tyhmät kysymykset

Post by Maamyyrä »

EDIT: Eipä mitään sain ratkaistua itse :D zori... Mutta haluaisin tietää miten funktio kutsutaan...
One object to rule them all

Just don't kill the Master
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset

Post by temu92 »

Maamyyrä wrote:Mutta haluaisin tietää miten funktio kutsutaan...
Kirjoittamalla funktion nimi ja sulkeet sen perään. Sulkujen väliin tulee funktiolle annettavat arvot. Esim:

Code: Select all

objekti = makeobject(72)

Code: Select all

tiedosto = opentoedit("tiedosto.txt")
Omat funktiot kutsutaan samalla tavalla:

Code: Select all

Helloworld()

Function Helloworld()
    print "Helloworld"
    waitkey
endfunction
Mutta tosiaan, ohjelmoinnin melkein helpoin asia on funktiot ja jos niitä ei ymmärrä niin varmaan parempi olla tekemättä, koska koko ohjelmointi perustuu funktiohin.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset

Post by axu »

Ja funktiosta palauttaminen tapahtuu Return komennolla.
Esim.

Code: Select all

txt$ = PrintLower("TeStI")
Print txt$
Waitkey

Function PrintLower(teksti$)
    teksti = Lower(teksti)
    Print teksti
    Return teksti
End Function
kirjotettiinko se Lower komento noin? :?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Sepi
Member
Posts: 84
Joined: Thu Jun 05, 2008 1:38 pm

Re: Tyhmät kysymykset

Post by Sepi »

Kuinka voin vertaillu taulukon arvoja keskenään?

Siis jos on taulukko pisteet(5) niin kuinka saan nuo laitettua järjestykseen?
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG »

Sepi wrote:Kuinka voin vertaillu taulukon arvoja keskenään?

Siis jos on taulukko pisteet(5) niin kuinka saan nuo laitettua järjestykseen?
Ei ehkä ihan paras mahdollinen tapa, mutta toimiva : )

Code: Select all

Dim pisteet(4)
Dim järjestetty(4)
Dim used(4)

pisteet(1)=2
pisteet(2)=33
pisteet(3)=92
pisteet(4)=1
pisteet(0)=12

For i=0 To 4

    For a=0 To 4
        If pisteet(a)>järjestetty(i) And used(a)=0 Then 
            järjestetty(i)=pisteet(a)
        EndIf 
    Next a

    For a=0 To 4
        If järjestetty(i)=pisteet(a) Then used(a)=1
    Next a

Next i
    

For i=0 To 4
Print järjestetty(i)
Next i

WaitKey 
    
Hengität nyt manuaalisesti.
Sepi
Member
Posts: 84
Joined: Thu Jun 05, 2008 1:38 pm

Re: Tyhmät kysymykset

Post by Sepi »

Kiitos, mutta en saanut tuota oikein sovellettua koodiini.

Siis selitänpä tarkemmin: Minulla siis on taulukko nimet(5), taulukko pisteet(5) ja taulukko sija(5),
Taulukko nimissä siis on nimi tyyliin Esa Ristolainen, ja minun pitäisi pystyä määrittelemään nuo nimet paremmuusjärjestykseen noiden pisteiden perusteella, ja merkittyä sija tuonne taulukko sijaan.
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

Code: Select all

  '----------------------------------------------------------------
'                      Viikatemies 1                     
'----------------------------------------------------------------


   Type VIHOLLISET
      Field obj'objecti
      Field hp'energiat
      Field dmg'vahinko
      Field speed'nopeus
      Field score'pisteet
      Field id'minkälainen zombie on
   End Type
   
   Type BULLETS
      Field obj
      Field hp
      Field dmg
      Field speed
      Field id
   End Type 
   
    Type upgs'asepäivitykset
       Field obj
       Field hp
       Field id
    EndType
    
   
SCREEN 800,800
FrameLimit 40
SetWindow "Viikatemies1",0,"oletko varma?"
/////////////////////////////////////////////////////////////////

valikko:

ClearText

  kuva = LoadImage ("c:\viikatemies\valikko.png")
  uusi = LoadObject("c:\viikatemies\uusi peli.png")
    PositionObject uusi,150,30
  poistu = LoadObject("c:\viikatemies\poistu.png")
    PositionObject poistu,-150,-30
  ohjeet = LoadObject("c:\viikatemies\ohjeet.png")
    PositionObject ohjeet,-200,200    
  hiiri = LoadObject("c:\viikatemies\hiiri.png")
  
ClearText   


                         Repeat

DrawImage kuva,0,0

  PositionObject hiiri,MouseWX(),MouseWY()
  ShowMouse OFF

  If ObjectsOverlap(hiiri,uusi) And MouseHit(1) Then Goto alkutekstit
  If ObjectsOverlap (hiiri,poistu) And MouseHit(1) Then End
  If ObjectsOverlap (hiiri,ohjeet) And MouseHit(1) Then Goto ohjeet
 
ClearText 

DrawScreen
Forever

/////////////////////////////////////////////////////////////////

ohjeet:

  arial=LoadFont("arial",20)




                            Repeat 
DrawImage kuva,0,0
ClearObjects

  Color cbred 
  SetFont arial 
    Text 1,1,"OHJEET PELAAMISEEN"
    Text 1,50,"W kävellään eteenpäin"
    Text 1,100,"S kävellään taaksepäin"
    Text 1,150,"A liikutetaan viikatetta"
    Text 1,200,"D liikutetaan viikatetta"
    Text 1,250,"Hiiren oikealla ammutaan"
    Text 1,300,"Hiirellä käännetään ukkoa"
    Text 1,350,"I avataan inventory"
    Text 1,400,"Punaiset Pullot parantavat"
    Text 1,450,"Siniset Pullot lisäävät voimaa"
    Text 1,500,"Vihreät Pullot lisäävät nopeutta"
    Text 1,550,"Peli pysäytetään P:llä"
      Color cbblack
    Text 1,600,"Paina Enteriä niin pääset valikkoon takaisin"

  If KeyDown (28) Then Goto valikko Then ClearText ' 28 = enter



DrawScreen 
Forever 

/////////////////////////////////////////////////////////////////

alkutekstit:
  
  plusx = 1
    arial=LoadFont("arial",20)
  kuva2= LoadImage ("c:\viikatemies\kuva.png")

                            Repeat

DrawImage kuva2,0,0
ClearObjects 'poistaa valikon kuvat
    Color cbWhite
    Text x,150,"Tämä teksti pitää kirjoittaa joka kerta"
    
    SetFont arial 
    Color cbRed
    Text 100,750,"Enteristä pääset peliin"
    
 If KeyHit(28) Then Goto peli '28 = enter
 
    
DrawScreen
Forever
         
/////////////peli alkaa tästä////////////////////////////////////        
'->        
peli:

kartta = LoadMap("c:\viikatemies\testi.til","c:\viikatemies\TILESET.png")
kartta2 = LoadMap("c:\viikatemies\testi2.til","c:\viikatemies\TILESET.png")


ukko = LoadObject ("c:\viikatemies\viikatemies.png",72)
    SetupCollision ukko, kartta, 1, 4, 2
    PositionObject ukko,150,200
    RotateObject ukko,270
bullet=LoadObject("c:\viikatemies\myrkkypallo.png",72)
    ShowObject bullet,OFF

vihu1 = LoadObject ("c:\viikatemies\ukkeli1.bmp",72)     : ShowObject vihu1,OFF
vihu2 = LoadObject ("c:\viikatemies\ukkeli2.bmp",72)     : ShowObject vihu2,OFF
cow = LoadObject   ("c:\viikatemies\viikatemies.png",32) : ShowObject cow,OFF 
upg=LoadObject     ("c:\viikatemies\myrkkypallo.png")    : ShowObject upg,OFF
topower=LoadObject ("c:\viikatemies\esine2.png")         : ShowObject topower,OFF
tospeed=LoadObject ("c:\viikatemies\esine3.png")         : ShowObject tospeed,OFF  
medikit=LoadObject ("c:\viikatemies\esine1.png")         : ShowObject medikit,OFF

viikate = LoadObject("c:\viikatemies\viikate2.png",18)
hiiri = LoadObject("c:\viikatemies\hiiri.png")
 

 hp=2000'sinun energiat
    powupg=12'Aseen aloitus teho
    speedupg=5'aseen aloitus nopeus


                              Repeat
ClearText 
  DeleteFont arial 
  
 While True

   If pause Then
  PositionObject hiiri,MouseWX(),MouseWY()'sijoitetaan tähtäin hiiten koordinaatteihin
  PointObject ukko,hiiri'käännetään ukko tähtäimeen

  If hp>0 Then 'jos on energiaa niin suritetaan kaikki
  CloneCameraPosition ukko
    MoveObject ukko,UpKey()*6-DownKey()*4
    TurnObject ukko,LeftKey()*5-RightKey()*5



  'Ukon ohjaus
  If KeyDown(17) Then MoveObject ukko,2' 17 = W
  If KeyDown(31) Then MoveObject ukko,-2' 31 =S


  If KeyDown(cbkeyA) Then viikateangle = wrapangle(viikateangle + 10)
  If KeyDown(cbkeyD) Then viikateangle = wrapangle(viikateangle - 10)



  CloneObjectPosition viikate,ukko
  RotateObject viikate, viikateangle + objectangle(ukko)


UpdateGame
CloneCameraPosition ukko

 
 

  



  'Ammu-systeemi. Vain, jos ase on ladattu
     If MouseHit (1) And reload<0
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        newbullet\dmg=powupg
        newbullet\speed=speedupg
        CloneObjectPosition newBullet\obj,ukko
        CloneObjectOrientation newbullet\obj,ukko
        MoveObject newBullet\obj,24
        reload=15
        SetupCollision newbullet\obj,kartta,1,4,2
    EndIf
    reload-1
    For iBullet.BULLETS= Each BULLETS
    If CountCollisions(ibullet\obj) Then ibullet\hp-32
    MoveObject iBullet\obj,6'llikutetaan luotia

    Next iBullet
  'Asepäivitykset''''''''''''''''''''''''''''''''
    If uusi>220
        newupg.upgS= New(upgS)'thdään uusi
        newupg\obj=CloneObject(upg)
        newupg\hp=100
        newupg\id=Rand(1,3)
        If Newupg\id=1 Then PaintObject newupg\obj,topower
        If Newupg\id=2 Then PaintObject Newupg\obj,tospeed
        If Newupg\id=3 Then PaintObject Newupg\obj,medikit
        'Asetetaan tavara kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        uusi=0
    EndIf
    uusi+1
    For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely
    If ObjectsOverlap(iupg\obj,ukko) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara
    If iupg\hp<0 Then'jos tuhotaan tavara
        If iupg\id=1 Then powupg+1'lisätään aseen tehoa
        If iupg\id=1 Then speedupg+1'nopeutta
        If iupg\id=3 Then hp+50'lisää energiaa
        DeleteObject iupg\obj'poistetaan tavara
        Delete iupg'ja sen jasen
    EndIf
    Next iupg
    'zombit''''''''''''''''''''''''''''''''''''''''
    If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
        newzombi.VIHOLLISET= New(VIHOLLISET)
        newzombi\obj=CloneObject(vihu1)
          If ObjectSight (Newzombi\obj,ukko)  And reload<0
         PointObject Newzombi\obj,ukko        
        newBullet2.BULLETS= New(BULLETS)
        newBullet2\obj=CloneObject(bullet)
        newbullet2\dmg=powupg
        newbullet2\speed=speedupg
        CloneObjectPosition newBullet2\obj,Newzombi\obj
        CloneObjectOrientation newbullet2\obj,Newzombi\obj
        MoveObject newBullet2\obj,24
        reload=15
        SetupCollision newbullet2\obj,kartta,1,4,2
    EndIf
    reload-1
    For iBullet2.BULLETS= Each BULLETS
    If CountCollisions(ibullet2\obj) Then ibullet2\hp-32
    MoveObject iBullet2\obj,6'llikutetaan luotia

    Next iBullet2
        'Asetetaan vihollinen kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        newzombi\id=Rand(1,2)
        If newzombi\id =1'Ykkös zombi
            newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
        EndIf
        If newzombi\id =2'kakkos zombi
            PaintObject newzombi\obj,cow
            newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
        EndIf
        SetupCollision newzombi\obj,kartta,1,4,2
        luo=0
    EndIf
    luo+1
    For izombi.VIHOLLISET= Each VIHOLLISET'Aloitetaan zombien läpikäynti
    'Typerä tekoäly
    sidle=Rand(-20,20)
    If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan

    PointObject izombi\obj,ukko'zombi tähtää pelaajaan
    If ObjectsOverlap(izombi\obj,ukko) Then hp-izombi\dmg

    For ibullet.bullets=Each bullets
    If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
    If Distance2(iBullet\obj,ukko)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
        DeleteObject iBullet\obj
        Delete iBullet
    EndIf
    Next ibullet
    
    MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran
        If ObjectsOverlap (viikate,izombi\obj) Then izombi\hp-1
    If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet
        score+izombi\score
        DeleteObject izombi\obj
        Delete izombi
    EndIf
    Next izombi
    EndIf

   
   DrawGame 

Text 0,0,FPS()

    Color cbred
     Text 40,40,Date()  
     Text 40,60,Time()  'kello
     
       Text 10,15,"HP "+hp
    Text 10,25,"Pisteet "+score 
 
    If hp<0 Then MakeError ("KUOLIT!")    
   
    Else
        DrawGame 
            Text 0,0,"Paina P:tä niin pause pois"
        EndIf
        If KeyDown(cbkeyP) Then pause = Not pause
        DrawScreen
    Wend 
  
DrawScreen 
Forever        
sanokaa olenko sisentänyt alkua oikein? (ainakin yritin) ja ongelmat joku ampuu näkymätön hahmo ampuu oikeiden vihujen sijasta ja kentän vaihto on mennyt pieleen kun se aukasee suoraan kartta2 1 sijaan ja onko tuo piste juttu edes oikein tehty? :roll: koodi taitaa olla aikamoista luettavaa..
TÄMÄ ongelma estää pelinteon jatkumisen
EDIT:

Ampumis jutut on otettu räiskintä peli esimerkistä , kiitos

Last edited by rami123 on Thu Oct 30, 2008 4:21 pm, edited 4 times in total.
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG »

Sepi wrote:Kiitos, mutta en saanut tuota oikein sovellettua koodiini.

Siis selitänpä tarkemmin: Minulla siis on taulukko nimet(5), taulukko pisteet(5) ja taulukko sija(5),
Taulukko nimissä siis on nimi tyyliin Esa Ristolainen, ja minun pitäisi pystyä määrittelemään nuo nimet paremmuusjärjestykseen noiden pisteiden perusteella, ja merkittyä sija tuonne taulukko sijaan.
Ja vielä lisää purkkaa o_O

Code: Select all

/////////////////////////////////////////
//////// TAULUKOT ///////////////////////
/////////////////////////////////////////
//// SIJOITA JÄRJESTETTÄVÄT TIEDOT //////
Dim nimet(4) As String                 //
Dim pisteet(4)                         //
/////////////////////////////////////////
// VARAA YHTÄ PALJON TILAA KUIN MUIHINKIN /
/////////////////////////////////////////
Dim käytetty(4)                        //
/////////////////////////////////////////
//// LAJITELLUT TAULUKOT ////////////////
Dim sijapisteet(4)                     //
Dim sijanimi(4) As String              //
/////////////////////////////////////////
/////////////////////////////////////////


pisteet(0)=12311 : nimet(0)="Pertti"
pisteet(1)=14351 : nimet(1)="Boris"
pisteet(2)=4661 : nimet(2)="Ipe"
pisteet(3)=79851 : nimet(3)="Matti"
pisteet(4)=83111 : nimet(4)="1337"

Lajittele(4)

For i=0 To 4
Print i+1+". "+sijanimi(i)+" - "+sijapisteet(i)
Next i

WaitKey 

Function Lajittele(montako)

For i=0 To montako

    For a=0 To montako
        If pisteet(a)>sijapisteet(i) And käytetty(a)=0 Then
            sijapisteet(i)=pisteet(a)
            sijanimi(i)=nimet(a)
        EndIf
    Next a

    For a=0 To montako
        If sijapisteet(i)=pisteet(a) Then
        käytetty(a)=1
        EndIf 
    Next a

Next i

EndFunction 
Hengität nyt manuaalisesti.
Sepi
Member
Posts: 84
Joined: Thu Jun 05, 2008 1:38 pm

Re: Tyhmät kysymykset

Post by Sepi »

Kiitokset sinulle.
Sepi
Member
Posts: 84
Joined: Thu Jun 05, 2008 1:38 pm

Re: Tyhmät kysymykset

Post by Sepi »

Osaisiko joku sanoa mikä tässä mättää:

Code: Select all

For x=0 To joukkueita
For sd=0 To joukkueita

If used(x)=0 Then
    If jvoitot(x)>jvoitot(sd)  Then
        used(x)=1 
        sijoitettu+1
        jsija(x)=sijoitettu

    Else
        jsija(x)=joukkueita+1

 EndIf
EndIf

Next sd
Next x

Minulla on siis jokaiselle taulukko jsija, johon joukkueen sija tallentuu, taulukko jvoitot, jossa näkyvät joukkueen voitot ja used, jossa kerrotaan onko joukkueen sijoitusta jo käyty läpi. Noh, ongelma on siis se, ettei tuo sijoita joukkueita oikein :D
Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: Tyhmät kysymykset

Post by Astigma »

sijoitettu+1 => sijoitettu=sijoitettu+1

EDIT:
Ja else osassa on myös hämärää toimintaa.
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG »

Jos tajusin nyt oikein, niin tämän pitäisi olla

Code: Select all

For x=0 To joukkueita

    For sd=0 To joukkueita
        If used(sd)=0 Then
            If jvoitot(sd)>jvoitot(x)  Then
                jsija(sd)=x
            EndIf 
        EndIf 
    Next sd
    
    For sd=0 To joukkueita
        If jsija(sd)=x Then
            used(sd)=1
            Exit
        EndIf 
    Next sd
    
Next x
Hengität nyt manuaalisesti.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset

Post by esa94 »

rami123 wrote:

Code: Select all

       
    /////////////peli alkaa tästä////////////////////////////////////       
    '->       
    peli:

    kartta = LoadMap("c:\viikatemies\testi.til","c:\viikatemies\TILESET.png")
    kartta2 = LoadMap ("c:\viikatemies\testi2.til","c:\viikatemies\TILESET.png")
sanokaa olenko sisentänyt alkua oikein? (ainakin yritin) ja ongelmat joku ampuu näkymätön hahmo ampuu oikeiden vihujen sijasta ja kentän vaihto on mennyt pieleen kun se aukasee suoraan kartta2 1 sijaan ja onko tuo piste juttu edes oikein tehty? :roll: koodi taitaa olla aikamoista luettavaa..
TÄMÄ ongelma estää pelinteon jatkumisen
Karttaongelma johtuu ainakin siitä, että lataat molemmat kartat peräkkäin. Sitäpaitsi, paintobject vain vaihtaisi kartan tilesettiä, joka on kuitenkin molemmissa sama.

Lataa kartta2 vasta, kun pisteet riittävät, ja sitä ennen poista kartta 1 muistista.
lerputin

Re: Tyhmät kysymykset

Post by lerputin »

Sivulta kuvattu tasohyppy ukkeli ampuu vain oikealle.. Miten saan sen ampumaan myös vasemmalle kun ukko katsoo vasemmalle?
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset

Post by -Z- »

lerputin wrote:Sivulta kuvattu tasohyppy ukkeli ampuu vain oikealle.. Miten saan sen ampumaan myös vasemmalle kun ukko katsoo vasemmalle?
Asiantuntiat suosittelevat rotateobjectia. Toimii tosin vain jos et ole laittanut pyöritysarvoa hahmollesi.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

-Z- wrote:Asiantuntiat suosittelevat rotateobjectia. Toimii tosin vain jos et ole laittanut pyöritysarvoa hahmollesi.
Pyörityslaatu vaikuttaa vain siihen missä kulmassa objektin kuva on, rotateobject toimii toki ilman sen määrittelyäkin. Asiantuntijat eivät suosittele laittelemaan turhaan pyörityslaatua, koska se nostaa latausaikaa.
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset

Post by -Z- »

Grandi wrote:
-Z- wrote:Asiantuntiat suosittelevat rotateobjectia. Toimii tosin vain jos et ole laittanut pyöritysarvoa hahmollesi.
Pyörityslaatu vaikuttaa vain siihen missä kulmassa objektin kuva on, rotateobject toimii toki ilman sen määrittelyäkin. Asiantuntijat eivät suosittele laittelemaan turhaan pyörityslaatua, koska se nostaa latausaikaa.
No niin niin, kyllä minä nyt sen tiedän, ja sitä tarkoitinkin. Pah.
Edit: luit todennäköisesti vain viestini väärin, sanoin nimittäin että toimii vai jos pyöritysarvoa EI ole määritetty.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Tyhmät kysymykset

Post by Ozcar »

lerputin wrote:Sivulta kuvattu tasohyppy ukkeli ampuu vain oikealle.. Miten saan sen ampumaan myös vasemmalle kun ukko katsoo vasemmalle?
Älä lähesty asiaa näin, vaan mieti, missä tilanteessa se ampuu vasemmalle SEKÄ katsoo sinne. Hyvin harvoin saa pelimekaniikkaa kuntoon vain liimaamalla ehtoja objektien tilan päälle, vaan usein täytyy objektien takana vaikuttavia voimia käydä kurkkimassa.


Eli vinkkinä:

Sen sijaan, että hahmo ampuu kun se katsoo vasemmalle, tee muuttuja jolla määrität sankarimme katsomissuunnan, ja sen mukaan sekä kääntelet ja vääntelet ukkoa sekä lennätät luoteja. Sanotaanpa vaikka, että suunta = -1 * (204 - keydown) (=oikealle, kun suunta on 1 ja vasemmalle, kun suunta = -1), jolloin paintobject ukko, ukkooikea ja translateobject pati, suunta, 0 (älä nyt hyvä ihminen käytä näitä suoraan, esimeriksi kakkosesimerkki vispaa luoteja hahmon kääntyessä. Mutta jos juonen päästä saisit kiinni.)
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Locked