Ongelma vihun tuhouksessa

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
naabster
Member
Posts: 56
Joined: Sat Sep 22, 2007 10:10 am

Ongelma vihun tuhouksessa

Post by naabster »

luodin pitäis osua vihuun ja sitten vihun pitäisi hävitä.Mikä tossa koodissa on vikana :?
VIELÄ YKSI KYSYMYS. MITEN SAADA VIHULLE ENUT KUN UKKO AMPUU VIHUA SE MENETTÄÄ YHEN ENUN SADASTA ENUSTA. :oops:

Code: Select all

Dim AMMUS_ELOSSA(100) 
Dim AMMUS_OBJ(100)   

FrameLimit 40 
vihu=LoadObject("Media\guy.bmp")
ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"
PositionObject vihu,0,110
Repeat
If ObjectsOverlap(pati,vihu,) Then MakeError "omg"
   
 If LeftKey() Then TurnObject ukko,5
 If RightKey() Then TurnObject ukko,-5
 If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2    

   
If KeyDown(cbKeyRControl) And reload=0 Then    
        GoSub LisääAmmus        
 EndIf    
    If reload>0 Then reload=reload-1

 Gosub PäivitäAmmukset

 DrawGame
        
   DrawScreen

Until EscapeKey()
End

LisääAmmus:
 
    For i=1 To 100
        If AMMUS_ELOSSA(i)=OFF Then
           
                
            AMMUS_ELOSSA(i)=ON
            AMMUS_OBJ(i)=CloneObject(pati)                
            
            CloneObjectPosition AMMUS_OBJ(i),ukko
                            
            CloneObjectOrientation AMMUS_OBJ(i),ukko
            
            reload=5            
            Exit
        EndIf
    Next i
Return 

PäivitäAmmukset:
      
    For i=1 To 100
        If AMMUS_ELOSSA(i) Then
            MoveObject AMMUS_OBJ(i),6
         
   If ObjectX(AMMUS_OBJ(i))<-2000  Then
                               
 DeleteObject AMMUS_OBJ(i)
                           
    AMMUS_ELOSSA(i)=OFF
  EndIf
            
        EndIf
    Next i
Return  
Last edited by naabster on Wed Dec 26, 2007 2:31 pm, edited 1 time in total.
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: miksi tämä ei toimi ?

Post by iTKEVAnAKKI »

Tein koko koodin paremmaksi, ja nyt toimii.

Code: Select all

 //Katso typet ja for...next systeemit ohjekirjasta
 //
FrameLimit 40  
 Type ASE
    Field obj
  EndType
  
  Global ukko,pati,vihu //Että voidaan käyttää funktiossa

  vihu=LoadObject("Media\guy.bmp")
  ukko=LoadObject("Media\soldier.bmp",72)
  pati=LoadObject("Media\bullet.bmp")
    ShowObject pati,OFF

  AddText "Nuolista ohjaa, CTRL=ampuu"
  PositionObject vihu,0,110
  
Repeat
   
  If LeftKey() Then TurnObject ukko,5
  If RightKey() Then TurnObject ukko,-5
  If UpKey() Then MoveObject ukko,2
  If DownKey() Then MoveObject ukko,-2    

   
  If KeyDown(cbKeyRControl) And reload=0 Then    
    Ammu()      
    reload=5
  EndIf    
    
  If reload>0 Then reload-1

  Päivitä_ammukset()
      
DrawScreen
Forever 

  Function Ammu()
    panos.ASE=New(ASE)
      panos\obj=CloneObject(pati)
      CloneObjectPosition panos\obj,ukko
      CloneObjectOrientation panos\obj,ukko
  EndFunction
  
  Function Päivitä_ammukset()
    For panos.ASE=Each ASE
      MoveObject panos\obj,10
      If ObjectsOverlap(panos\obj,vihu) Then MakeError "omg" //Nyt tämäkin toimii
      If Distance(0,0,ObjectX(panos\obj),ObjectY(panos\obj))>600 Then
        DeleteObject panos\obj
        Delete panos
      EndIf
    Next panos
  EndFunction


Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)
mikeful
Moderator
Moderator
Posts: 523
Joined: Mon Aug 27, 2007 8:36 pm
Location: Vaasa, Finalnd
Contact:

Re: Ongelma vihun tuhouksessa

Post by mikeful »

naabster: Käytä ensi kerrallla kuvaavampia otsikoita. Vaihdoin tilalle paremman.

iTKEVAnAKKI: Kerro mitä muutoksia teit koodiin. Aloittelija ei ehkä saa niitä itse selville.
Pelejä: Pelasta puhe, Grinder
Muuta: Blogi, Twitter
Post Reply