Mitään erikoista en löytänyt... Tässäpä on sisennetty versio jos joku voisi koodiani vilkaista:legend wrote:Virhe yläänsä löytyy helpommin jos sisentää koodin. Tää ohjelma sisäntää koodin... Ottaa huomioon kaiken =D (jopa kommentit =D)Peltsi wrote:Ohjelmani MAV:aa, vika lienee luotien törmäysmäärityksistä karttaan... Voisiko joku vilkaista koodia ja ehdottaa ratkaisua? KiitosCode: Select all
SCREEN 900,900 SetWindow "Battle game (Ver: kehitys)" ChDir "C:\Documents and Settings\Järjestelmänvalvoja\Omat tiedostot\BattleGame kehitys\Media" Text 100,100, "Vihreä sotilas: liikkuu: nuolinäppäimistä ja ampuu luodin: M" Text 100,150, "Punainen sotilas: liikkuu: W,A,S,D ja ampuu luodin: C" Text 100,200, "Kummallakin pelaajalla elämä on 100, yhdestä osumasta menettää 1." Text 100,250, "PELI ALKKAA 6 SEKUNTIN KULUTTUA!" Text 100,300, "Paina pelin aikana H päästäksesi ohjeeseen" Type AMMUS Field obj End Type Type AMPU Field amm End Type FrameLimit 40 Wait 6000 ClearText kartta = LoadMap("kartta.til","tileset.bmp") PlayObject kartta,0,0,1 ukko=LoadObject("soldier.bmp", 360) ukkeli=LoadObject("soldier2.bmp", 360) pati=LoadObject("panos.bmp") ShowObject pati,OFF paukku=LoadObject ("panos.bmp") ShowObject paukku,OFF Dim ykm As String ykm="Vihreä sotilas kuoli, Punainen sotilas voitti. Peli päättyi." Dim kam As String Dim linechange As String linechange=Chr(13)+Chr(10) kam="Punainen sotilas kuoli, Vihreä sotilas voitti. Peli päättyi." ykm=ykm+linechange 'Pyöritä ukot alkuasentoon RotateObject ukko,0 RotateObject ukkeli,180 PositionObject ukko,-100,100 PositionObject ukkeli,100,-100 'Törmäykset SetupCollision ukko,ukkeli,2,2,2 SetupCollision ukkeli,ukko,2,2,2 SetupCollision ukko,kartta,1,4,2 SetupCollision ukkeli,kartta,1,4,2 'ELMÄMÄT ObjectInteger ukko,100 ObjectInteger ukkeli,100 Repeat Color cbwhite Text 10,860,"Pelin toimintanopeus (ruudunpäivitystä sekunnissa):" Text 420,860,FPS() Text 10,880,"Paina H päästäksesi ohjeeseen" Color cbred Text 100,100,FPS() If KeyDown(cbKeyH) Then Execute "BattleGameOhje.txt" EndIf If LeftKey() Then TurnObject ukko,4 If RightKey() Then TurnObject ukko,-4 If UpKey() Then MoveObject ukko,5 If DownKey() Then MoveObject ukko,-5 If KeyDown(cbKeyA) Then TurnObject ukkeli,4 If KeyDown(cbKeyD) Then TurnObject ukkeli,-4 If KeyDown(cbKeyW) Then MoveObject ukkeli,5 If KeyDown(cbKeyS) Then MoveObject ukkeli,-5 If ObjectX(ukko)<-430 Then PositionObject ukko,-430,ObjectY(ukko) If ObjectX(ukko)>430 Then PositionObject ukko,430,ObjectY(ukko) If ObjectY(ukko)<-430 Then PositionObject ukko,ObjectX(ukko),-430 If ObjectY(ukko)>430 Then PositionObject ukko,ObjectX(ukko),430 If ObjectX(ukkeli)<-430 Then PositionObject ukkeli,-430,ObjectY(ukkeli) If ObjectX(ukkeli)>430 Then PositionObject ukkeli,430,ObjectY(ukkeli) If ObjectY(ukkeli)<-430 Then PositionObject ukkeli,ObjectX(ukkeli),-430 If ObjectY(ukkeli)>430 Then PositionObject ukkeli,ObjectX(ukkeli),430 'VIHREÄ If KeyDown(cbKeyM) And reload=0 Then PlaySound "Machine Gun 1.wav",100 luot.AMPU = New(AMPU) luot\amm=CloneObject(paukku) CloneObjectPosition luot\amm,ukko CloneObjectOrientation luot\amm,ukko reload=5 'Luodin lataus nopeus EndIf If reload>0 Then reload=reload-1 For luot.AMPU = Each AMPU MoveObject luot\amm,50 'Luodin lento nopeus If ObjectsOverlap (ukkeli,luot\amm) Then ObjectInteger ukkeli,ObjectInteger(ukkeli) -1 'Luodin hittaus DeleteObject luot\amm Delete luot EndIf Next luot 'Elämä 0 If ObjectInteger (ukkeli) = 0 Then PlaySound "screm1.wav",100 MakeError kam End EndIf 'PUNAINEN If KeyDown(cbKeyC) And reload=0 Then PlaySound "Machine Gun 1.wav",100 luoti.AMMUS = New(AMMUS) luoti\obj=CloneObject(pati) CloneObjectPosition luoti\obj,ukkeli CloneObjectOrientation luoti\obj,ukkeli reload=5 'Luodin lataus nopeus EndIf If reload>0 Then reload=reload-1 For luoti.AMMUS = Each AMMUS If ObjectsOverlap (ukko,luoti\obj) Then ObjectInteger ukko,ObjectInteger(ukko) -1 'Luodin hittaus EndIf MoveObject luoti\obj,50 'Luodin lento nopeus If ObjectsOverlap (ukko,luoti\obj) Then DeleteObject luoti\obj Delete luoti EndIf Next luoti '!!!!!!!!!!!!!!!!!!!!!!!! 'MAV tulee jos lisätään nämä määritykset ja if:in SetupCollision luoti\obj,kartta,2,4,2 osuu = CountCollisions (luoti\obj) If osuu Then DeleteObject luoti\obj Delete luoti EndIf '!!!!!!!!!!!!!!!!!!!!!!!! If ObjectInteger (ukko) = 0 Then PlaySound "screm1.wav",100 MakeError ykm End EndIf DrawScreen Until EscapeKey()
Code: Select all
Const file$ = "alkuperäinen tiedosto.cb" //älä laita file1 ja file2 samaa tai muuten koodisi hukkuu... Const file2$ = "sisennetty.cb" If Not Sisentäjä(file,file2) Then Print "Tiedosto puuttui" Else Print "Tiedosto on sisennetty =)" Print file + " -> " + file2 EndIf WaitKey '' by legend 'Siventää tekstiä 'palauttaa 1, jos onnistui Function Sisentäjä(file$,file2$) If FileExists(file) Dim Väli$,Txt$,Rivi$ Väli = " " 'alku väli R = OpenToRead(file) 'avataan tiedostot W = OpenToWrite(file2) While EOF(R) = 0 Rivi = Trim(ReadLine(R))'luetaan rivi txt = GetWord(Trim(Rivi),1," ") 'otetaan sana 'käydään yksi rivinen if lause läpi If txt = "If" And InStr(rivi,"Then") > 0 And InStr(rivi, Chr(34)+ "Then" +Chr(34)) = 0 If GetWord(Mid(Rivi,InStr(Rivi,"Then")),2) = "" Or Left(GetWord(Mid(Rivi,InStr(Rivi,"Then")),2),1) = "'" Or Left(GetWord(Mid(Rivi,InStr(Rivi,"Then")),2),2) = "//" WriteLine W, Väli + Rivi väli = väli + " " Else WriteLine W, Väli + Rivi EndIf 'käydään rivin jälkeen lavennettavat ElseIf txt = "Repeat" Or txt = "For" Or txt = "While" Or txt = "Type" Or txt = "Lock" Or txt = "Function" Or txt = "If" WriteLine W, Väli + Rivi väli = väli + " " 'käydään heti sisentävät kohdat ElseIf txt = "Until" Or txt = "Wend" Or txt = "EndIf" Or txt = "EndFunction" Or txt = "Forever" Or txt = "Unlock" Or txt = "Next" Or Lower(txt) = "endtype" Or (txt = "End" And GetWord(rivi,2) = "Function")Or (txt = "End" And GetWord(rivi,2) = "If") Or (txt = "End" And GetWord(rivi,2) = "Type") väli = Left(väli,Len(väli)-4) WriteLine W, Väli + Rivi 'käydään heti sisennettävät kohdat, jotka myös laventavat rivin jälkeen ElseIf txt = "ElseIf" Or txt = "Case" Or txt = "Else" Or txt = "Default" Or (txt = "Else" And GetWord(rivi,2) = "If") väli = Left(väli,Len(väli)-4) WriteLine W, Väli + Rivi väli = väli + " " 'käydään 8 väliä laventavat kohdat ElseIf txt = "Select" WriteLine W, Väli + Rivi väli = väli + " " 'käydään 8 väliä supistavat kohdat ElseIf txt = "EndSelect" Or (txt = "End" And GetWord(rivi,2) = "Select") Väli = Left(väli,Len(väli)-8) WriteLine W, Väli + Rivi 'käydään ei loogiset kohdat ElseIf txt = "DrawToImage" If i = 0 //Lavennettavat WriteLine W, Väli + Rivi väli = väli + " " i = 1 Else 'käydään heti sisennettävät kohdat, jotka myös laventavat rivin jälkeen väli = Left(väli,Len(väli)-4) WriteLine W, Väli + Rivi väli = väli + " " EndIf ElseIf txt = "DrawToScreen" väli = Left(väli,Len(väli)-4) WriteLine W, Väli + Rivi i = 0 'kirjoitettaan muut ylös Else WriteLine W, Väli + Rivi EndIf Wend CloseFile(R) CloseFile(W) Return 1 'palauettaan yksi jos se onnistui Else Return 0 'jos epäonnistui EndIf EndFunction
Code: Select all
SCREEN 900,900
SetWindow "Battle game (Ver: kehitys)"
ChDir "C:\Documents and Settings\Järjestelmänvalvoja\Omat tiedostot\BattleGame kehitys\Media"
Text 100,100, "Vihreä sotilas: liikkuu: nuolinäppäimistä ja ampuu luodin: M"
Text 100,150, "Punainen sotilas: liikkuu: W,A,S,D ja ampuu luodin: C"
Text 100,200, "Kummallakin pelaajalla elämä on 100, yhdestä osumasta menettää 1."
Text 100,250, "PELI ALKKAA 6 SEKUNTIN KULUTTUA!"
Text 100,300, "Paina pelin aikana H päästäksesi ohjeeseen"
Type AMMUS
Field obj
End Type
Type AMPU
Field amm
End Type
FrameLimit 40
Wait 6000
ClearText
kartta = LoadMap("kartta.til","tileset.bmp")
PlayObject kartta,0,0,1
ukko=LoadObject("soldier.bmp", 360)
ukkeli=LoadObject("soldier2.bmp", 360)
pati=LoadObject("panos.bmp")
ShowObject pati,OFF
paukku=LoadObject ("panos.bmp")
ShowObject paukku,OFF
Dim ykm As String
ykm="Vihreä sotilas kuoli, Punainen sotilas voitti. Peli päättyi."
Dim kam As String
Dim linechange As String
linechange=Chr(13)+Chr(10)
kam="Punainen sotilas kuoli, Vihreä sotilas voitti. Peli päättyi."
ykm=ykm+linechange
'Pyöritä ukot alkuasentoon
RotateObject ukko,0
RotateObject ukkeli,180
PositionObject ukko,-100,100
PositionObject ukkeli,100,-100
'Törmäykset
SetupCollision ukko,ukkeli,2,2,2
SetupCollision ukkeli,ukko,2,2,2
SetupCollision ukko,kartta,1,4,2
SetupCollision ukkeli,kartta,1,4,2
'ELMÄMÄT
ObjectInteger ukko,100
ObjectInteger ukkeli,100
Repeat
Color cbwhite
Text 10,860,"Pelin toimintanopeus (ruudunpäivitystä sekunnissa):"
Text 420,860,FPS()
Text 10,880,"Paina H päästäksesi ohjeeseen"
Color cbred
Text 100,100,FPS()
If KeyDown(cbKeyH) Then
Execute "BattleGameOhje.txt"
EndIf
If LeftKey() Then TurnObject ukko,4
If RightKey() Then TurnObject ukko,-4
If UpKey() Then MoveObject ukko,5
If DownKey() Then MoveObject ukko,-5
If KeyDown(cbKeyA) Then TurnObject ukkeli,4
If KeyDown(cbKeyD) Then TurnObject ukkeli,-4
If KeyDown(cbKeyW) Then MoveObject ukkeli,5
If KeyDown(cbKeyS) Then MoveObject ukkeli,-5
If ObjectX(ukko)<-430 Then PositionObject ukko,-430,ObjectY(ukko)
If ObjectX(ukko)>430 Then PositionObject ukko,430,ObjectY(ukko)
If ObjectY(ukko)<-430 Then PositionObject ukko,ObjectX(ukko),-430
If ObjectY(ukko)>430 Then PositionObject ukko,ObjectX(ukko),430
If ObjectX(ukkeli)<-430 Then PositionObject ukkeli,-430,ObjectY(ukkeli)
If ObjectX(ukkeli)>430 Then PositionObject ukkeli,430,ObjectY(ukkeli)
If ObjectY(ukkeli)<-430 Then PositionObject ukkeli,ObjectX(ukkeli),-430
If ObjectY(ukkeli)>430 Then PositionObject ukkeli,ObjectX(ukkeli),430
'VIHREÄ
If KeyDown(cbKeyM) And reload=0 Then
PlaySound "Machine Gun 1.wav",100
luot.AMPU = New(AMPU)
luot\amm=CloneObject(paukku)
CloneObjectPosition luot\amm,ukko
CloneObjectOrientation luot\amm,ukko
reload=5 'Luodin lataus nopeus
EndIf
If reload>0 Then reload=reload-1
For luot.AMPU = Each AMPU
MoveObject luot\amm,50 'Luodin lento nopeus
If ObjectsOverlap (ukkeli,luot\amm) Then
ObjectInteger ukkeli,ObjectInteger(ukkeli) -1 'Luodin hittaus
DeleteObject luot\amm
Delete luot
EndIf
Next luot
'Elämä 0
If ObjectInteger (ukkeli) = 0 Then
PlaySound "screm1.wav",100
MakeError kam
End
EndIf
'PUNAINEN
If KeyDown(cbKeyC) And reload=0 Then
PlaySound "Machine Gun 1.wav",100
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukkeli
CloneObjectOrientation luoti\obj,ukkeli
reload=5 'Luodin lataus nopeus
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
If ObjectsOverlap (ukko,luoti\obj) Then
ObjectInteger ukko,ObjectInteger(ukko) -1 'Luodin hittaus
EndIf
MoveObject luoti\obj,50 'Luodin lento nopeus
If ObjectsOverlap (ukko,luoti\obj) Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
'!!!!!!!!!!!!!!!!!!!!!!!!
'MAV tulee jos lisätään nämä määritykset ja if:in
SetupCollision luoti\obj,kartta,2,4,2
osuu = CountCollisions (luoti\obj)
If osuu Then
DeleteObject luoti\obj
Delete luoti
EndIf
'!!!!!!!!!!!!!!!!!!!!!!!!
If ObjectInteger (ukko) = 0 Then
PlaySound "screm1.wav",100
MakeError ykm
End
EndIf
DrawScreen
Until EscapeKey()