Page 66 of 154

Re: Tyhmät kysymykset

Posted: Sun Aug 31, 2008 3:09 pm
by Alligaattori
Kun vihulaisia käydään läpi, joka keralla tarkastellaan samaa luotia, vaikka se olisi jo tuhottu. Jos hävitetään luoti ja sillä tehdään törmäystarkastelua, tulee mav. Laita "Delete luoti" -rivin jälkeen Exit, jolla hypätään sisemmästä silmukasta ulos ja tässä tapauksessa ulomman silmukan loppuun, minkä jälkeen palataan taas silmukan alkuun ja aletaan tarkastella uutta luotia.

Korjasin asian ja laitoin sisennykset. Sisennyksillä koodi selkenee ja virheiden etsintä helpottuu. Kannattaa opetella sisentelemään. ;)

Code: Select all

For luoti.AMMUS = Each AMMUS
    ammustuhottava = 0
    MoveObject luoti\obj,10
    For vihulainen.VIHU = Each VIHU
        If ObjectsOverlap (vihulainen\obj,luoti\obj) Then
            vihulainen\health -1
            DeleteObject luoti\obj
            If vihulainen\health<1 Then
                DeleteObject vihulainen\obj
                Delete vihulainen
                Delete luoti
                Exit // Hypätään pois sisimmästä silmukasta
            EndIf    //  |
        EndIf        //  |
    Next vihulainen  //  | 
    //          <--------+
Next luoti

Re: Tyhmät kysymykset

Posted: Sun Aug 31, 2008 4:03 pm
by temu92
Toinen keino on taas merkitä luoti kuolleeksi vaikka tekemällä erillinen field typeen tai käyttämällä objectintegeriä. Sitten kun silmukka on käyty kokonaan läpi niin poistetaan kaikki luodit ja/tai viholliset jotka on merkitty kuolleiksi. Tämä keino mahdollistaa vielä enemmän kikkailua kuin vain pelkkä poistaminen suoraan.

Re: Tyhmät kysymykset

Posted: Tue Sep 02, 2008 7:34 pm
by minä täällä vieläkin
mav:i tulee vieläkin.

Re: Tyhmät kysymykset

Posted: Tue Sep 02, 2008 7:45 pm
by metsien mies
Miten saan komennettua esim cloneobjectposition objektille jonka olen tehnyt typeillä? Siis nyt se ei toimi muissa objecteissa kuin siinä mikä tulee keskelle maailmaa "automaattisesti". Typeillä tehdyissä objekteissa se ei toimi. help me :D

Re: Tyhmät kysymykset

Posted: Tue Sep 02, 2008 9:18 pm
by Nassi_Setä
kato CB:ssä Learnig Centeristä oppitunti 18

Re: Tyhmät kysymykset

Posted: Tue Sep 02, 2008 9:48 pm
by metsien mies
Nassi_Setä wrote:kato CB:ssä Learnig Centeristä oppitunti 18
Ja mikähän kohta sieltä?

Re: Tyhmät kysymykset

Posted: Tue Sep 02, 2008 9:55 pm
by Koodiapina
Rivi 34. Tokihan sitä pitää soveltaa.

Re: Tyhmät kysymykset

Posted: Wed Sep 03, 2008 9:30 pm
by moi
Kuinka voi muuttaa yhden objektin kahdeksi objektiksi, ikään kuin paintobjektilla mutta se tekisi niitä objekteja kaksi?

Re: Tyhmät kysymykset

Posted: Wed Sep 03, 2008 9:43 pm
by Koodiapina
Näin?

Code: Select all

    obj1 = LoadObject("media/cow.bmp")
    obj2 = CloneObject(obj1)

Re: Tyhmät kysymykset

Posted: Wed Sep 03, 2008 9:51 pm
by moi
Juu juu, mut mites noita voi käyttää sillein että kun painan nappia x niin vakkapa objekti y muuttuu objekti a:ksi ja B:ksi? :D

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 9:08 am
by KillBurn
Tyypit käyttöön.Kun painat sitä nappia niin luot uuden objectin.Katso manuaalista typet.

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 9:50 am
by koodari299
mikäs koodissani mättää?, aina kun tankin panos osuu seinään tai, pillbox:in panos tankkiin niin tulee mav. :?: :?:

Code: Select all

aloitus:

SCREEN 730,500
alku=LoadImage("media\tankwar2.jpg")
aloitus = Timer()
Repeat

DrawImage alku,0,0
    If edistys < 100 Then edistys = (Timer()-aloitus) / 100

    Color 255, 255, 255
    

    ProgressBar(150, 400, 50, edistys)
   
If edistys=100 Then
Goto peli
EndIf
    DrawScreen
Forever 




peli:
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type

Type AMMUS2 'luo kokoelma, jonka nimi on AMMUS
    Field obj2 'yksi kenttä nimeltään 'obj2'
End Type

Type vAMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field vobj 'yksi kenttä nimeltään 'vobj'
End Type

 Type particles
        Field x
        Field y
        Field vr
        Field vg
        Field vb
        Field xd
        Field yd
    EndType

FrameLimit 20
DrawToWorld ON
SCREEN 1024,768,cbfullscreen
SetWindow "TANK WAR 2"
kartta = LoadMap("Media\tankkimap1.til","Media\testi3.png")
PlayObject kartta,0,0,1
alaosa = LoadObject("Media\tankkiala3.png", 72)

yläosa = LoadObject("Media\tankkiyla3.png", 72)
ObjectRange yläosa,25
pati=LoadObject("Media\bullet.bmp")
pati2=LoadObject("Media\bullet2.bmp")
ohjus=LoadObject("media\bigbullet.bmp",360)
konari = LoadSound ("Media\konari.wav")
tykki= LoadSound ("media\boom 1.wav")
pbox1 = LoadObject("media\pillbox.bmp",72)
hppalkki=LoadImage("Media/life.jpg")

ObjectRange pbox1,25
ShowObject ohjus,OFF
ShowObject pati,OFF
ShowObject pati2,OFF
//Ladataan tähtäin...
tähtäin=LoadObject("media\target.bmp")
kulma# = 0.0
tankkie=200
pbox1e=100
SetupCollision alaosa,kartta,1, 4, 2
PositionObject pbox1,250,-220
PositionObject alaosa,0,300
RotateObject pbox1,180




Repeat



PositionObject tähtäin,MouseWX(),MouseWY()
ShowMouse OFF
    
    MoveObject alaosa, (KeyDown(208)-KeyDown(200))*2
    TurnObject alaosa, (KeyDown(203)-KeyDown(205))*2
    If KeyDown(cbkeya) Then TurnObject yläosa,5
    kulma = WrapAngle( kulma + (KeyDown(30)-KeyDown(32)*2) )
    
    
    
    'Ammu-systeemi. Vain, jos ase on ladattu
    If MouseDown(1) And reload=0 Then 
     PlaySound konari,50
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,yläosa                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,yläosa            
        reload=5 'aseen lataus 
        MoveObject luoti\obj,10, 0
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
          If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
                    
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
            
          
        EndIf     

 
     'Ammu-systeemi. Vain, jos ase on ladattu
    If MouseDown(2) And reload2=0 Then    
      PlaySound tykki,50
        luoti2.AMMUS2 = New(AMMUS2) 'luo uusi ammus
        luoti2\obj2=CloneObject(ohjus) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti2\obj2,yläosa                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti2\obj2,yläosa            
        reload2=50 'aseen lataus 
        MoveObject luoti2\obj2,10, 0
    EndIf
    'päivitä aseen lataaminen
    If reload2>0 Then reload2=reload2-1

    'Päivitä kaikki ammukset
    For luoti2.AMMUS2 = Each AMMUS2
        MoveObject luoti2\obj2,10
               If GetMap(2,ObjectX(luoti2\obj2),ObjectY(luoti2\obj2)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
                              
            DeleteObject luoti2\obj2 'poista objekti
            Delete luoti2 'poista luoti kokonaan
        EndIf        
   Next luoti2
   
   //pillboxin ammustsydeemi
  If ObjectSight(yläosa,pbox1)Then
  PointObject pbox1,yläosa
  EndIf
    If ObjectSight(yläosa,pbox1) And vreload=0 Then 
        vluoti.vAMMUS = New(vAMMUS) 'luo uusi ammus
        vluoti\vobj=CloneObject(pati2) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition vluoti\vobj,pbox1                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation vluoti\vobj,pbox1            
        vreload=40 'aseen lataus 
        MoveObject vluoti\vobj,10, 0
    EndIf
    'päivitä aseen lataaminen
    If vreload>0 Then vreload=vreload-1

    'Päivitä  v kaikki ammukset
    For vluoti.vAMMUS = Each vAMMUS
        MoveObject vluoti\vobj,6
       If GetMap(2,ObjectX(vluoti\vobj),ObjectY(vluoti\vobj)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
                    
            DeleteObject vluoti\vobj 'poista objekti
            Delete vluoti 'poista luoti kokonaan
        EndIf        
    Next vluoti
    
    If ObjectsOverlap(luoti\obj,pbox1) Then
     DeleteObject luoti\obj
            Delete luoti
             EndIf
   Next luoti
   
    
      
      
  
   

   DrawImageBox hppalkki,40,40,0,0,tankkie*2,26
    CloneObjectPosition yläosa, alaosa
    CloneObjectOrientation yläosa, alaosa
    PointObject yläosa,tähtäin
    TurnObject yläosa, kulma
   DrawGame 
    Text 10,10,FPS() 'print the current FPS
  Text 10,25,"pillboxin hp:"+pbox1e
    
    
    CloneCameraPosition alaosa
    DrawScreen
Forever



// CoolBasic Software Development Kit
// FILE: cbFormElements.cb
// VERSION: revision 8
// CONTENTS: Windows Form Elements Function Library for CoolBasic
// Last Updated: 16.10.2006

Dim checked_radio(100)
Dim disabled_radio(100)

Function CmdButton(txt$,x,y,w=0,h=0) 'by alodnal
    If w = 0 Then w = TextWidth(txt$)
    If h = 0 Then h = TextHeight(txt$)
	old_r = getRGB(RED)
	old_g = getRGB(GREEN)
	old_b = getRGB(BLUE)
	If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
		Color 255,255,255
		Line x-1,y-1,x+w,y-1
		Line x-1,y,x-1,y+h
		Color 128,128,128
		Line x,y+h,x+w,y+h
		Line x+w,y,x+w,y+h-1
		Color 64,64,64
		Line x+w+1,y-1,x+w+1,y+h
		Line x-1,y+h+1,x+w+1,y+h+1
		Color 212,208,200
		Box x,y,w,h
		Color 0,0,0
		Text x+(w/2)-(TextWidth(txt)/2)-1,y+(h/2)-(TextHeight(txt)/2),txt
		is_clicked = False
		If MouseDown(1) Then
			Color 212,208,200
			Box x,y,w+1,h+1
			Color 64,64,64
			Line x-1,y-1,x+w,y-1
			Line x-1,y,x-1,y+h	
			Color 128,128,128
			Line x,y,x+w-1,y
			Line x,y+1,x,y+h-1
			Color 255,255,255
			Line x+w+1,y-1,x+w+1,y+h
			Line x-1,y+h+1,x+w+1,y+h+1
			Color 0,0,0
			Text x+(w/2)-(TextWidth(txt)/2),y+(h/2)-(TextHeight(txt)/2)+1,txt
			is_clicked = False
		ElseIf MouseUp(1) Then
			is_clicked = True
		EndIf
	Else
		Color 255,255,255
		Line x-1,y-1,x+w,y-1
		Line x-1,y,x-1,y+h
		Color 128,128,128
		Line x,y+h,x+w,y+h
		Line x+w,y,x+w,y+h-1
		Color 64,64,64
		Line x+w+1,y-1,x+w+1,y+h
		Line x-1,y+h+1,x+w+1,y+h+1
		Color 212,208,200
		Box x,y,w,h
		Color 0,0,0
		Text x+(w/2)-(TextWidth(txt)/2)-1,y+(h/2)-(TextHeight(txt)/2),txt
		is_clicked = False
	EndIf
	Color old_r,old_g,old_b
	Return is_clicked
End Function


Function ImageButton(img,x,y,w=0,h=0) 'by alodnal
    If w = 0 Then w = ImageWidth(img)
    If h = 0 Then h = ImageHeight(img)
	old_r = getRGB(RED)
	old_g = getRGB(GREEN)
	old_b = getRGB(BLUE)
	Color 212,208,200
	Box x,y,w,h
	If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
		If MouseDown(1) Then
			Color 128,128,128
			Line x-1,y-1,x+w-1,y-1
			Line x-1,y,x-1,y+h-1
			Color 255,255,255
			Line x-1,y+w,x+w,y+h
			Line x+w,y-1,x+w,y+h-1
			DrawImage img,x+(w/2)-(ImageWidth(img)/2),y+(h/2)-(ImageHeight(img)/2)
			is_clicked = False
		ElseIf MouseUp(1) Then
			DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
			is_clicked = True
		Else
			Color 255,255,255
			Line x-1,y-1,x+w-1,y-1
			Line x-1,y,x-1,y+h-1
			Color 128,128,128
			Line x-1,y+w,x+w,y+h
			Line x+w,y-1,x+w,y+h-1
			DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
			is_clicked = False
		EndIf
	Else
		DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
		is_clicked = False	
	EndIf
	Color old_r,old_g,old_b
	Return is_clicked
End Function


Function Inputfield(key,x,y,w,h,returns$,passchar$="") 'by alodnal
	old_r = getRGB(RED)
	old_g = getRGB(GREEN)
	old_b = getRGB(BLUE)
	If w < TextWidth("A") Then w = TextWidth("A")
	If h < TextHeight("A") Then h = TextHeight("A")
	If Len(returns) < 3 Then
		is_activated$ = "0"
		keytime$ = "00"
		blink$ = "00"
		stri$ = ""
	Else
		is_activated$ = Left(returns,1)
		keytime$ = Mid(returns,2,2)
		blink$ = Mid(returns,4,2)
		stri$ = Mid(returns,6,Len(returns)-5)	
	EndIf
	If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
		If MouseHit(1) Then is_activated = "1": blink = "0"	
	Else
		If MouseHit(1) Then is_activated = "0"	
	EndIf
	If is_activated = "1" Then
		blink = Int(blink) + 1
		For a = 32 To 126
			If key = a Or key = 145 Then
				stri = StrInsert(stri,Len(stri)+1,Chr(key))
				blink = "0"	
			EndIf	
		Next a
		For b = 160 To 255
			If key = 146 Or key = b Then	
				stri = StrInsert(stri,Len(stri)+1,Chr(key))
				blink = "0"	
			EndIf	
		Next b	
		If Len(stri) > 0 Then
			If KeyHit(14) Then	
				stri = StrRemove(stri,Len(stri),1)
				blink = "0"		
			ElseIf KeyDown(14) Then	
				If Int(keytime) < 20 Then keytime = Int(keytime) + 1
				If Int(keytime) >= 20 Then stri = StrRemove(stri,Len(stri),1)
				blink = "0"
			Else
				keytime = "00"			
			EndIf		
		EndIf	
	EndIf
	Color 64,64,64
	Line x-1,y-1,x+w-1,y-1
	Line x-1,y,x-1,y+h-1
	Color 212,208,200
	Line x-1,y+h,x+w,y+h
	Line x+w,y-1,x+w,y+h-1
	Color 128,128,128
	Line x-2,y-2,x+w,y-2
	Line x-2,y-1,x-2,y+h
	Color 255,255,255
	Line x-2,y+h+1,x+w+1,y+h+1
	Line x+w+1,y-2,x+w+1,y+h
	Box x,y,w,h
	Color 0,0,0
	letter_amount = RoundDown(w / TextWidth("A")) - 1
    If passchar$ = "" Then
        Text x+1,y+(h/2)-(TextHeight("A")/2),Right(stri,letter_amount)
    Else
        char_amount = Min( Len(stri), letter_amount )
        Text x+1,y+(h/2)-(TextHeight("A")/2),String(passchar$,char_amount)
    EndIf
    If is_activated = "1" Then
		If Int(blink) < 21 Then
			Line x+TextWidth(Right(stri,letter_amount))+2,y+(h/2)-(TextHeight(stri)/2),x+TextWidth(Right(stri,letter_amount))+2,y+(h/2)+(TextHeight(stri)/2)		
		ElseIf Int(blink) > 39 Then	
			blink = "0"		
		EndIf	
	EndIf
	If Len(keytime) < 2 Then keytime = "0" + keytime
	If Len(blink) < 2 Then blink = "0" + blink	
	Return is_activated + keytime + blink + stri
	Color old_r,old_g,old_b
End Function

Function GetText(returns$)
	Return Mid(returns,6,Len(returns)-5)
End Function

Function SetText(txt$)
	Return "00000" + txt$
End Function


Function Checkbox(txt$,x,y,checked) 'by alodnal
	old_r = getRGB(RED)
	old_g = getRGB(GREEN)
	old_b = getRGB(BLUE)
	is_checked = checked
	Color 64,64,64
	Line x-1,y-1,x+8,y-1
	Line x-1,y,x-1,y+8
	Color 212,208,200
	Line x-1,y+9,x+9,y+9
	Line x+9,y-1,x+9,y+8
	Color 128,128,128
	Line x-2,y-2,x+9,y-2
	Line x-2,y-1,x-2,y+9
	Color 255,255,255
	Line x-2,y+10,x+10,y+10
	Line x+10,y-2,x+10,y+9
	If MouseX() >= x and MouseX() <= x+9 And MouseY() >= y And MouseY() <= y+9 And MouseDown(1) Then
        Color 212,208,200
        Box x,y,9,9
    ElseIf MouseX() >= x And MouseX() <= x+9 And MouseY() >= y And MouseY() <= y+9 And MouseUp(1) Then
        Color 255,255,255
        Box x,y,9,9
        If is_checked Then
            is_checked = False
        Else
            is_checked = True
        EndIf
    Else
		Color 255,255,255
		Box x,y,9,9
	EndIf
    Color 0,0,0
    Text x+11+5,y+(9/2)-(TextHeight(txt)/2),txt
    If is_checked Then
        Line x+1,y+5,x+3,y+7
        Line x+1,y+4,x+3,y+6
        Line x+1,y+3,x+3,y+5
		Line x+4,y+4,x+7,y+1
		Line x+4,y+5,x+7,y+2
		Line x+4,y+6,x+7,y+3
    EndIf
	Color old_r,old_g,old_b
	Return is_checked
End Function


Function Radiobutton(stri$,x,y,group,id) 'by cb Programmer
    // Onko tämä nappi valittu
    If checked_radio(group)=id Then is_checked = True
    // Onko nappi disabled, jos ei niin:
    If disabled_radio(group)=False Then
        If MouseX() >= x and MouseX() <= x+13 And MouseY() >= y And MouseY() <= y+13 And MouseDown(1) Then
            Color 128,128,128
            Circle x,y,12,0
            Color 0,0,0
            Circle x+1,y+1,10,0
            Color 255,255,255
            Line x+10,y+2,x+10,y+3
            Line x+11,y+4,x+11,y+7
            Line x+10,y+8,x+10,y+9
            Line x+8,y+10,x+9,y+10
            Line x+4,y+11,x+7,y+11
            Line x+2,y+10,x+3,y+10
            Color 212,208,200
            Circle x+2,y+2,8,1
            Color 222,222,222
            Line x+10,y+4,x+10,y+7
            Line x+9,y+8,x+9,y+9
            Line x+8,y+9,x+9,y+9
            Line x+4,y+10,x+7,y+10
            Line x+2,y+9,x+3,y+9
            Line x+2,y+8,x+2,y+9
        ElseIf MouseX() >= x And MouseX() <= x+13 And MouseY() >= y And MouseY() <= y+13 And MouseUp(1) Then
            Color 128,128,128
            Circle x,y,12,0
            Color 0,0,0
            Circle x+1,y+1,10,0
            Color 255,255,255
            Line x+10,y+2,x+10,y+3
            Line x+11,y+4,x+11,y+7
            Line x+10,y+8,x+10,y+9
            Line x+8,y+10,x+9,y+10
            Line x+4,y+11,x+7,y+11
            Line x+2,y+10,x+3,y+10
            Circle x+2,y+2,8,1
            Color 222,222,222
            Line x+10,y+4,x+10,y+7
            Line x+9,y+8,x+9,y+9
            Line x+8,y+9,x+9,y+9
            Line x+4,y+10,x+7,y+10
            Line x+2,y+9,x+3,y+9
            Line x+2,y+8,x+2,y+9
            If is_checked = False Then
                is_checked = True
                checked_radio(group)=id
            Else
                is_checked = False
            EndIf
        Else
            Color 128,128,128
            Circle x,y,12,0
            Color 0,0,0
            Circle x+1,y+1,10,0
            Color 255,255,255
            Line x+10,y+2,x+10,y+3
            Line x+11,y+4,x+11,y+7
            Line x+10,y+8,x+10,y+9
            Line x+8,y+10,x+9,y+10
            Line x+4,y+11,x+7,y+11
            Line x+2,y+10,x+3,y+10
            Circle x+2,y+2,8,1
            Color 222,222,222
            Line x+10,y+4,x+10,y+7
            Line x+9,y+8,x+9,y+9
            Line x+8,y+9,x+9,y+9
            Line x+4,y+10,x+7,y+10
            Line x+2,y+9,x+3,y+9
            Line x+2,y+8,x+2,y+9
        EndIf
        
        Color 0,0,0
        Text x+13,y,stri$
        
        If is_checked = True Then
            Color 0,0,0
            Circle x+4,y+4,4,1
            Return True
        Else
            Return False
        EndIf
    // Jos disabled = true
    Else
        Color 173,173,156
        Circle x,y,12,0
        Color 119,107,99
        Circle x+1,y+1,10,0
        Color 255,255,255
        Line x+10,y+2,x+10,y+3
        Line x+11,y+4,x+11,y+7
        Color 231,255,255
        Line x+10,y+8,x+10,y+9
        Line x+8,y+10,x+9,y+10
        Line x+4,y+11,x+7,y+11
        Line x+2,y+10,x+3,y+10
        Color 239,239,222
        Circle x+2,y+2,8,1
        Color 222,222,222
        Line x+10,y+4,x+10,y+7
        Line x+9,y+8,x+9,y+9
        Line x+8,y+9,x+9,y+9
        Line x+4,y+10,x+7,y+10
        Line x+2,y+9,x+3,y+9
        Line x+2,y+8,x+2,y+9
        Color 173,173,156
        Text x+13,y,stri$
    EndIf
End Function

Function DisableRadioGroup(group, state=1)
    disabled_radio(group) = state
End Function

Function CheckRadioButton(group,id)
    checked_radio(group) = id
End Function



Function ProgressBar(x, y, bars, value) 'by Bagard
    value = Max(Min(value, 100), 0)
    tot_length = bars * 8 + 1

    // Tausta
    Color 212, 208, 200
    Box x+1, y+1, tot_length-1, 11

    // Tummat viivat
    Color 128, 128, 128
    Line x, y, x+tot_length, y
    Line x, y+1, x, y+11

    // Valkoiset viivat
    Color 255, 255, 255
    Line x, y+12, x+tot_length, y+12
    Line x+tot_length, y, x+tot_length, y+11

    // Palkit
    Color 10, 36, 106
    For i = 0 To RoundDown(bars * (value/100.0))-1
        Box x+2+(i*8), y+2, 6, 9
    Next i

End Function


// LIST BOX


Const ListsNoMax = 100 'Korkeintaan N listaa
Const ListItemsNoMax = 1000 'Korkeintaan N valintaa per lista
Dim ListItems(ListsNoMax,ListItemsNoMax) As String
Dim ListItemsNo(ListsNoMax)
Dim ListSelection(ListsNoMax)
Dim ListScroll(ListsNoMax)
Dim ListActive(ListsNoMax) As Byte
Dim ListSelectChanged(ListsNoMax) As Byte

Function List(id, x,y, w,h, Scrollbar=1, keySelection=1)
	old_r = getRGB(RED)
	old_g = getRGB(GREEN)
	old_b = getRGB(BLUE)
	If w < TextWidth("A") Then w = TextWidth("A")
	If h < TextHeight("A") Then h = TextHeight("A")
    
	Color 64,64,64
	Line x-1,y-1,x+w-1,y-1
	Line x-1,y,x-1,y+h-1
	Color 212,208,200
	Line x-1,y+h,x+w,y+h
	Line x+w,y-1,x+w,y+h-1
	Color 128,128,128
	Line x-2,y-2,x+w,y-2
	Line x-2,y-1,x-2,y+h
	Color 255,255,255
	Line x-2,y+h+1,x+w+1,y+h+1
	Line x+w+1,y-2,x+w+1,y+h
	Box x,y,w,h
    
    If MouseDown(1) Then
        If MouseX()=>x And MouseX()<=x+w And MouseY()=>y And MouseY()<=y+h Then
            If ListActive(id)=False And keySelection Then a=mousemovez() 'pyyhkii hiiren rullan tiedot pois, jottei aktivointi saa listaa rullaamaan hassusti mousemovez
            ListActive(id)=True
            If MouseHit(1) Then
                If Scrollbar=False Or MouseX()<x+w-15 Then
                    item = (MouseY()-y)/TextHeight("A")+ListScroll(id)
                    SelectListItem(id,item)
                    ListSelectChanged(id)=True
                End If
            End If
        Else
            ListActive(id)=False
        End If
    End If
    
    If keySelection And ListActive(id) Then
        If KeyHit(cbkeyup) Then ListSelection(id)=Max(ListSelection(id)-1,1):ListSelectChanged(id)=True
        If KeyHit(cbkeydown) Then ListSelection(id)=Min(ListSelection(id)+1,ListItemsNo(id)):ListSelectChanged(id)=True
        ListScroll(id)=ListScroll(id)-MouseMoveZ()
        ListScroll(id) = Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)
    End If
    
    ListSelection(id) = Min(Max(ListSelection(id),0),ListItemsNo(id))
    
    If ListSelection(id)=>ListScroll(id) And ListSelection(id)<ListScroll(id)+h/TextHeight("A") Then
        Color cbdarkblue
        yy = y+ (ListSelection(id)-ListScroll(id))*TextHeight("A")
        Box x+1,yy, w-2, TextHeight("A")
    End If
        
    If ListItemsNo(id)>h/TextHeight("A") And Scrollbar Then
        If ListActive(id) And MouseDown(1) And MouseX()=>x+w-15 Then
            Pros# = ((MouseY()-y)*1.0)/h
            ListScroll(id) = Pros *(ListItemsNo(id)-h/TextHeight("A"))+1
            ListScroll(id) = Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)
        End If
    
        Color 64,64,64
        Box x+w-15,y,15,h, OFF
        Color 212,208,200
        Box x+w-14,y+1,13,h-2,OFF
        Color 212,208,200
        Box x+w-13,y+2,11,h-4
        
        Color cbdark
        Pros# = (ListScroll(id)-1.0)/(ListItemsNo(id)-h/TextHeight("A"))
        yy = y + (h-15)*Pros
        Box x+w-15,yy,15,TextHeight("A")
    End If
    
    ListScroll(id)=Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)

    Color 0,0,0
    MinItem=max(ListScroll(id),1)
    MaxItem=min(ListScroll(id)+h/TextHeight("A")-1,ListItemsNo(id))
    For i = MinItem To MaxItem
        yy=y+TextHeight("A")*(i-ListScroll(id))
        Text x+2,yy, ListItems(id,i)
    Next i
    
    Color old_r,old_g,old_b
End Function

Function SelectListItem(id,item)
    ListSelection(id)=item
End Function

Function SelectListItemString(id,item$)
    For i = 1 To ListItemsNo(id)
        If ListItems(id,i)=item Then
            ListSelection(id)=i
            Return True
        End If
    Next i
    Return False
End Function

Function AddListItem(id, item$, selection=0)
    If ListItemsNo(id)=ListItemsNoMax Then Return False
    ListItemsNo(id)=ListItemsNo(id)+1
    ListItems(id,ListItemsNo(id))=item
    If selection Then
        ListSelection(id)=ListItemsNo(id) : ListSelectChanged(id)=True
        ListScroll(id) = Max(ListScroll(id),ListSelection(id))
    End If
    Return ListItemsNo(id)
End Function

Function DeleteListItem(id, item)
    If item=0 Then Return False
    For i = item To ListItemsNo(id)
        If i<ListItemsNo(id) Then ListItems(id,i)=ListItems(id,i+1) Else ListItems(id,i)=""
    Next i
    ListItemsNo(id) = ListItemsNo(id)-1
End Function

Function DeleteListItemString(id, itemString$)
    For i = 1 To ListItemsNo(id)
        If ListItems(id,i)=itemString Then
            item=i
            Exit
        End If
    Next i
    If item=0 Then Return False
    For i = item To ListItemsNo(id)
        If i<ListItemsNo(id) Then ListItems(id,i)=ListItems(id,i+1) Else ListItems(id,i)=""
    Next i
    ListItemsNo(id) = ListItemsNo(id)-1
    Return True
End Function

Function FormatList(id)
    For i = 1 To ListItemsNo(id)
        ListItems(id,i)=""
    Next i
    ListItemsNo(id)=0
    ListSelectionChanged(id)=False
    ListSelection(id)=0
End Function

Function ChangeListItem(id,item,NewItem$)
    ListItems(id,item) = NewItem
End Function

Function ChangeListItemString(id,item$,NewItem$)
    For i = 1 To ListItemsNo(id)
        If ListItems(id,i)=item Then
            ListItems(id,i) = NewItem
            Return True
        End If
    Next i
    Return False
End Function

Function GetListSelection(id)
    Return ListItems(id,ListSelection(id))
End Function

Function ListSelectionChanged(id)
    If ListSelectChanged(id) Then
        ListSelectChanged(id)=False
        Return True
    Else
        Return False
    End If
End Function

Function SortList(id,sortType=0)
    //sortType: 0: Nouseva aakkosjärjestys; 1: Laskeva aakkosjärjestys
    
    For i = 1 To ListItemsNo(id)
        iItem$ = ListItems(id,i)
        For j = i+1 To ListItemsNo(id)
            jItem$ = ListItems(id,j)
            If jItem<iItem And sortType=0 Then
                ListItems(id,i)=jItem
                ListItems(id,j)=iItem
                iItem=jItem
            ElseIf jItem>iItem And sortType=1 Then
                ListItems(id,i)=jItem
                ListItems(id,j)=iItem
                iItem=jItem
            End If
        Next j
    Next i
End Function






Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 4:04 pm
by cheeshelmet.jr
koodari299 wrote:mikäs koodissani mättää?, aina kun tankin panos osuu seinään tai, pillbox:in panos tankkiin niin tulee mav. :?: :?:

Code: Select all

Code.....
No kun panos osuu seinään niin se poistetaan ja siirrytään katsomaan samaa panosta mikä poistettiin ja silloin tulee MAV eli sinun pitää poistua silmukasta tai sitten vain tarkistaa ajoissa onko pati poistettu jo ennen seuraavaa poistoa jos on niin sitten hypätään loput yli

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 5:33 pm
by koodari299
siis exit komennolla? :?:

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 8:15 pm
by moi
KillBurn wrote:Tyypit käyttöön.Kun painat sitä nappia niin luot uuden objectin.Katso manuaalista typet.
Miksi heittä MaVIA?
tässä nou mahdollisesti maviin vaikuttavat kohdat:

Code: Select all

Type puut
Field obj
Field hp'paljonko joutuu puuta sahaamaan ennenkö kaatuu
Field id'minkä näköinen puu on
Field li

EndType


If KeyDown(cbkeyr) And konekäynnissä=1
    
        newhavu.li= New(puut)
        newhavu\li=CloneObject(havut)
        CloneObjectPosition newhavu\li,koura
        CloneObjectOrientation newhavu\li,koura
    
   
    
        
    EndIf

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 8:32 pm
by cheeshelmet.jr
koodari299 wrote:siis exit komennolla? :?:
No yksin kertaisesti vaikkanäin

Code: Select all

        For vluoti.vAMMUS = Each vAMMUS
        Poistettu=False 
            MoveObject vluoti\vobj,6
            If GetMap(2,ObjectX(vluoti\vobj),ObjectY(vluoti\vobj)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
                       
                DeleteObject vluoti\vobj 'poista objekti
                Delete vluoti 'poista luoti kokonaan
                Poistettu=True 
            EndIf       
        Next vluoti
       If Poistettu=False Then 
            If ObjectsOverlap(luoti\obj,pbox1) Then
                DeleteObject luoti\obj
                Delete luoti
            EndIf
       EndIf 
       Next luoti

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 9:11 pm
by Alligaattori
moi wrote:
KillBurn wrote:Tyypit käyttöön.Kun painat sitä nappia niin luot uuden objectin.Katso manuaalista typet.
Miksi heittä MaVIA?
tässä nou mahdollisesti maviin vaikuttavat kohdat:

Code: Select all

Type puut
Field obj
Field hp'paljonko joutuu puuta sahaamaan ennenkö kaatuu
Field id'minkä näköinen puu on
Field li

EndType


If KeyDown(cbkeyr) And konekäynnissä=1
    
        newhavu.li= New(puut)
        newhavu\li=CloneObject(havut)
        CloneObjectPosition newhavu\li,koura
        CloneObjectOrientation newhavu\li,koura
    
   
    
        
    EndIf
Laita newhavu.puut=new(puut). Jos tämä on koko koodisi, objektit koura ja havut täytyy olla olemassa. Muuten tulee mav.

Re: Tyhmät kysymykset

Posted: Thu Sep 04, 2008 9:44 pm
by moi
bool cppNerd=!false; wrote:
moi wrote:
KillBurn wrote:Tyypit käyttöön.Kun painat sitä nappia niin luot uuden objectin.Katso manuaalista typet.
Miksi heittä MaVIA?
tässä nou mahdollisesti maviin vaikuttavat kohdat:

Code: Select all

Type puut
Field obj
Field hp'paljonko joutuu puuta sahaamaan ennenkö kaatuu
Field id'minkä näköinen puu on
Field li

EndType


If KeyDown(cbkeyr) And konekäynnissä=1
    
        newhavu.li= New(puut)
        newhavu\li=CloneObject(havut)
        CloneObjectPosition newhavu\li,koura
        CloneObjectOrientation newhavu\li,koura
    
   
    
        
    EndIf
Laita newhavu.puut=new(puut). Jos tämä on koko koodisi, objektit koura ja havut täytyy olla olemassa. Muuten tulee mav.
Mav silti. Tässä koko koodi (koitettu värkätä esimerkkikoodeista ja ongelmista jotain)

Code: Select all

FrameLimit 40
SCREEN 800,600
Smooth2D ON

Type puut
Field obj
Field hp'paljonko joutuu puuta sahaamaan ennenkö kaatuu
Field id'minkä näköinen puu on
Field li

EndType




map= LoadMap("Media\metä.til","Media\tile.bmp")
PlayObject map,0,0,0.5

saha=LoadSound  ("media/sahaus.wav")
havut = LoadObject    ("Media\alusta.bmp",72)
puu=LoadObject("media\kuusi.bmp")
puu2=LoadObject("media\koivu.bmp")
kuorkki= LoadObject   ("media/kuorkki.bmp",72)
koura = LoadObject     ("media/koura.bmp",72)
alaosa = LoadObject    ("Media\alusta.bmp",72)
yläosa = LoadObject    ("Media\ylä.bmp",72)
pikkupuomi=LoadObject ("media/pikkupuomi.bmp",72)
puomi=LoadObject      ("media/puomi.bmp",72)
kone=LoadSound        ("media/006.wav")
käynnistys=LoadSound  ("media/002.wav")
näyttö=LoadImage      ("media/näyttö.bmp")
kanto=LoadObject      ("media/kanto.bmp",72)
tankki=LoadObject      ("media/pö.bmp",72)
'puut
puu=LoadObject("media\kuusi.bmp")
puu2=LoadObject("media\koivu.bmp")
ukko1= LoadObject ("media/taka.bmp",72)
ukko2= LoadObject ("media/nokka.bmp",72)
pölli =LoadObject("media/pölli.bmp",72)
pääpuomi = LoadObject ("media/puomi2.bmp",72)
jatkopuomi=LoadObject ("media/pikkupuomi.bmp",72)
koura2 = LoadObject("media/koura2.bmp",72)
'Tehdään puut'''''''
For i=1 To 500'sata puuta
        newpuu.puut= New(puut)
        newpuu\id=Rand(1,2)
        If newpuu\id=1 Then
            newpuu\obj=CloneObject(puu)'puun ulkomuoto
            newpuu\hp=100'puun hp
            PositionObject newpuu\obj,Rand(-1400,-400),Rand(-1070,-600)'arvotaan puun paikka
        EndIf
        If newpuu\id=2 Then
            newpuu\obj=CloneObject(puu2)'puun ulkomuoto
            newpuu\hp=150'puun hp
            PositionObject newpuu\obj,Rand(-1400,-400),Rand(-1070,-600)'arvotaan puun paikka
        EndIf
Next i   

For i=1 To 1500'sata puuta
        newpuu.puut= New(puut)
        newpuu\id=Rand(1,2)
        If newpuu\id=1 Then
            newpuu\obj=CloneObject(puu)'puun ulkomuoto
            newpuu\hp=100'puun hp
            PositionObject newpuu\obj,Rand(-3400,-2300),Rand(-2500,-830)'arvotaan puun paikka
        EndIf
        If newpuu\id=2 Then
            newpuu\obj=CloneObject(puu2)'puun ulkomuoto
            newpuu\hp=150'puun hp
            PositionObject newpuu\obj,Rand(-3400,-2300),Rand(-2500,-830)'arvotaan puun paikka
        EndIf
Next i   

For i=1 To 1500'sata puuta
        newpuu.puut= New(puut)
        newpuu\id=Rand(1,2)
        If newpuu\id=1 Then
            newpuu\obj=CloneObject(puu)'puun ulkomuoto
            newpuu\hp=100'puun hp
            PositionObject newpuu\obj,Rand(-2300,-1600),Rand(-2070,-1000)'arvotaan puun paikka
        EndIf
        If newpuu\id=2 Then
            newpuu\obj=CloneObject(puu2)'puun ulkomuoto
            newpuu\hp=150'puun hp
            PositionObject newpuu\obj,Rand(-2300,-1600),Rand(-2070,-1000)'arvotaan puun paikka
        EndIf
Next i   

'muuttujat
koura5=0
lavalla = 0 'onko moto lavetilla
konekäynnissä = 0 'tarkastetaan onko moto käynnissä?
puomi_paikka2 = 0
    kulma2# = 0.0 
    puomi_paikka = 0
    kulma# = 0.0 
  
puita=0
polttoaine=25
tunnit=1

ukko = 1
kamera = 1
lavalla2 = 0


RotateObject ukko1,0
RotateObject ukko2,180

PositionObject ukko2,50,-50
PositionObject ukko1,-50,50

SetupCollision ukko1,ukko2,2,2,2
SetupCollision ukko2,ukko1,2,2,2


Repeat
 If KeyHit(cbkey1) Then  kamera = 1
  If KeyHit(cbkey2) Then  kamera = 2
  If KeyHit(cbkeyspace) Then  PlaySound käynnistys
  If KeyHit(cbkeyr) Then  PlaySound saha
 
DrawGame
For ipuu.puut= Each puut
    If ObjectsOverlap (koura,ipuu\obj) And KeyDown (cbkeyr) Then ipuu\hp-10
    If ipuu\hp<0 Then 'jos hp loppuu niin poistetaan puu
        kaadetut+1
        PaintObject ipuu\obj, pölli
       
        
    EndIf
Next ipuu


   If Distance2(ukko2,ukko1)>9000 Then
      MoveObject ukko1,3
      Else
      PointObject ukko1,ukko2
      MoveObject ukko1,4
   EndIf   


If KeyDown(cbkeyr) And konekäynnissä=1
    
        newhavu.puut=New(puut)
        newhavu\li=CloneObject(havut)
        CloneObjectPosition newhavu\li,koura
        CloneObjectOrientation newhavu\li,koura
    
   
    
        
    EndIf



If Timer()>record+2200 Then 
   PlaySound kone
   polttoaine-0,1
   tunnit+0,1 
        record=Timer()
       
    EndIf
    


If polttoaine=<0 Then konekäynnissä=0 

 If KeyHit(cbkeyn) Then  koura5= 0
   If KeyHit(cbkeym) Then  koura5 = 1

 If KeyHit(cbkey1) Then  kamera = 1
  If KeyHit(cbkey2) Then  kamera = 2
   If KeyHit(cbkey3) Then  kamera = 3

 If KeyDown(cbKeyj) Then TurnObject ukko2,5
   If KeyDown(cbKeyl) Then TurnObject ukko2,-5
   If KeyDown(cbKeyi) Then MoveObject ukko2,2
   If KeyDown(cbKeyk) Then MoveObject ukko2,-2
 If lavalla = 0 Then TurnObject koura2, (KeyDown(71)-KeyDown(73))*1

If lavalla2 = 0 Then  kulma2 = WrapAngle( kulma2 + (KeyDown(75)-KeyDown(77)*2) )
If lavalla2 = 0 then puomi_paikka2 = puomi_paikka2 + (KeyDown(76)-KeyDown(72)*2 )

If ObjectsOverlap (alaosa, tankki) And KeyDown(cbkeyz) Then polttoaine+1
If ObjectsOverlap (koura2, puu2) And KeyDown(cbkeyu) Then CloneObjectPosition pölli, koura2 
If ObjectsOverlap (koura2, puu2) And KeyDown(cbkeyu) Then CloneObjectOrientation pölli, koura2 

If lavalla = 0 And KeyDown(cbkeyf) And KeyDown(cbkeyf) Then TurnObject kuorkki,2
If lavalla = 0   And KeyDown(cbkeyh) And  KeyDown(cbkeyh) Then TurnObject kuorkki,-2
If lavalla = 0   And KeyDown(cbkeyt)And KeyDown(cbkeyt)  Then MoveObject kuorkki,-5
If lavalla = 0   And KeyDown(cbkeyg) Then MoveObject kuorkki,5 

If lavalla = 1 And KeyDown(cbkeyf) And KeyDown(cbkeyf) Then TurnObject kuorkki,2
If lavalla = 1   And KeyDown(cbkeyh) And  KeyDown(cbkeyh) Then TurnObject kuorkki,-2
If lavalla = 1   And KeyDown(cbkeyt)And KeyDown(cbkeyt)  Then MoveObject kuorkki,-5
If lavalla = 1   And KeyDown(cbkeyg) Then MoveObject kuorkki,5 


If KeyHit( CbKey4 ) Then lavalla = 0
If KeyHit( CbKey5 ) Then lavalla = 1
If KeyHit( CbKey6 ) Then lavalla2 = 0
If KeyHit( CbKey7 ) Then lavalla2 = 1
If KeyHit( CbKeyspace ) Then konekäynnissä = 1 'välilyönnistä käynnistyy


If KeyDown(209) Then CloneObjectPosition puu2, ukko1
If KeyDown(211) Then CloneObjectOrientation puu2, ukko1


If lavalla=1 Then CloneObjectPosition alaosa, kuorkki 
If lavalla=1 Then CloneObjectOrientation alaosa, kuorkki

If lavalla2=1 Then CloneObjectPosition ukko2, kuorkki 
If lavalla2=1 Then CloneObjectOrientation ukko2, kuorkki
If lavalla2=1 Then CloneObjectPosition ukko1, kuorkki 
If lavalla2=1 Then CloneObjectOrientation ukko1, kuorkki

If lavalla = 0 Then MoveObject alaosa, (KeyDown(cbkeys)-KeyDown(cbkeyw))*2
 If lavalla = 0 Then TurnObject alaosa, (KeyDown(cbkeya)-KeyDown(cbkeyd))*1
 If lavalla = 0 Then TurnObject koura, (KeyDown(cbkeyq)-KeyDown(cbkeye))*1
  If lavalla = 0 Then kulma = WrapAngle( kulma + (KeyDown(203)-KeyDown(205)*2) )
 If lavalla = 0 Then puomi_paikka = puomi_paikka + (DownKey()-UpKey())

 If konekäynnissä = 1 Then MoveObject alaosa, (KeyDown(cbkeys)-KeyDown(cbkeyw))*1
 If konekäynnissä = 1 Then TurnObject alaosa, (KeyDown(cbkeya)-KeyDown(cbkeyd))*1
 If konekäynnissä = 1 Then TurnObject koura, (KeyDown(cbkeyq)-KeyDown(cbkeye))*1
 If konekäynnissä = 1 Then kulma = WrapAngle( kulma + (KeyDown(203)-KeyDown(205)*2) )
 If konekäynnissä = 1 Then puomi_paikka = puomi_paikka + (DownKey()-UpKey())



If kamera = 1 Then CloneCameraPosition alaosa
If kamera = 2 Then CloneCameraPosition ukko2
If kamera = 3 Then CloneCameraPosition kuorkki

If koura5 = 1 Then CloneObjectPosition pölli, koura2
If koura5 = 1 Then CloneObjectOrientation pölli, koura2

CloneObjectPosition pääpuomi, ukko2
CloneObjectOrientation pääpuomi, ukko2
TurnObject pääpuomi, kulma2

CloneObjectPosition jatkopuomi, pääpuomi 
CloneObjectOrientation jatkopuomi, pääpuomi
MoveObject jatkopuomi, puomi_paikka2
CloneObjectPosition koura2,jatkopuomi


     CloneObjectOrientation tankki, kuorkki
     CloneObjectPosition tankki, kuorkki
 
     CloneObjectPosition koura,pikkupuomi 
     
     CloneObjectOrientation pikkupuomi, yläosa
     CloneObjectPosition pikkupuomi,yläosa 
     CloneObjectOrientation puomi, yläosa
     CloneObjectPosition puomi,yläosa 
     CloneObjectPosition yläosa, alaosa
     CloneObjectOrientation yläosa, alaosa
     MoveObject pikkupuomi, puomi_paikka
     TurnObject yläosa, kulma
  
  

DrawGame





DrawImage näyttö,20,475 'tehdään moton tietokoneen näyttö

Color cbblack 

If konekäynnissä = 1 Then Text 432,492,"Polttoaine:"
 If konekäynnissä = 1 Then Text 392,543,FPS() 
 If konekäynnissä = 1 Then Text 352,543, "FPS"
 If konekäynnissä = 1 Then Text 462,543,Time()
 If konekäynnissä = 1 Then Text 432,543,"KLO:"
 If konekäynnissä = 1 Then Text 347,565,"Puita kaadettu:"
 If konekäynnissä = 1 Then Text 467,565,+kaadetut
If konekäynnissä = 1 Then Text 432,505,polttoaine
If konekäynnissä = 1 Then Text 432,520,"Tunnit:"
If konekäynnissä = 1 Then Text 487,520,tunnit

DrawScreen 

Forever

Lisäksi mulla sama ongelma kun yhellä toisellakin, et pitäis saaha nuo "kaadetut" puut kanssa toimimaan niikuin muut objektit että niitä voi komentaa.
Olisin kiitollinen jos joku auttais

Re: Tyhmät kysymykset

Posted: Fri Sep 05, 2008 7:37 pm
by Ruuttu
Jos minulla on "kiikkulauta", jota voi käännellä hiirellä, ja pallo tuon kiikkulaudan päällä, niin miten voisin suht helposti ja melkein realistisesti laskea pallon liikehdinnät? Eli kaikenmaailman ilmanvastuksia ja newtoneita ei tarvitse ottaa huomioon, kunhan se pallo valuisi vinoa kiikkua pitkin alas jne, ja jos kiikku kääntyy nopeasti niin pallo lähtee lentoon jne.

Onko mitään sen tapaistakaan mahdollista koodata "yksinkertaisesti" ?

Re: Tyhmät kysymykset

Posted: Fri Sep 05, 2008 8:33 pm
by Koodiapina
Vaikea sanoa, kun en osaa fysiikkaa. Pallon ja sen kiikun törmäyksen tarkistamiseen tarvitset kuitenkin SPuntten koodistoa: viewtopic.php?f=12&t=574