home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1978-10-06 | 8.7 KB | 337 lines |
- Rem * Made by: Patrik Holmstr�m 1991 *
- Rem * Contact me: 5:e Bjurhovdag.37 *
- Rem * 723 53 V�STER�S *
- Rem * SWEDEN *
- Rem
- Close Workbench : Close Editor : Volume 63
- Change Mouse 2
- Dim JX(16),JY(16)
- For I=1 To 15 : Read X,Y : JX(I)=X : JY(I)=Y : Next I
- Screen Open 0,640,256,16,0
- NYTT:
- SG=0
- Hide
- Screen Open 1,320,256,32,0 : Screen Hide 1
- Unpack 6 To 0 : Screen Show 1
- Gosub FEL
- MEG:
- Sam Play 1,10,3000
- Sprite Off
- Gosub FEL
- OMIGEN:
- Input "Do you wish instructions(n/y)?";Q$
- If Q$="y" Then Goto INST
- If Q$="Y" Then Goto INST
- If Q$="n" Then Goto STAR
- If Q$="N" Then Goto STAR
- Gosub FEL
- Goto OMIGEN
- STAR:
- Gosub FEL
- Input "Control goal(y/n)?";QA$
- If QA$="y" Then Goto PLAER
- If QA$="Y" Then QA$="y" : Goto PLAER
- If QA$="n" Then Goto PLAER
- If QA$="N" Then Goto PLAER
- Goto STAR
- PLAER:
- Gosub FEL
- Input "Centerline (y/n)?";QB$
- If QB$="y" Then Goto PLAER2
- If QB$="Y" Then QB$="y" : Goto PLAER2
- If QB$="n" Then Goto PLAER2
- If QB$="N" Then Goto PLAER2
- Goto PLAER
- PLAER2:
- Gosub FEL
- Input "Goal difference to win(1-10):";GD
- If GD<1 Then Goto PLAER2
- If GD>10 Then Goto PLAER2
- PLAER22:
- Gosub FEL
- Input "Players 1 or 2:";SPEL
- HEJ:
- Gosub FEL
- If SPEL=1 Then Input "RoboGamecar 0 to 5 (0=easiest):";SG : SG=SG+5 : Goto PATRIK
- If SPEL=2 Then Goto PATRIK
- Goto PLAER22
- PATRIK:
- If SG>10 Then Goto HEJ
- Gosub FEL
- Input "Player1's name:";MOTST1$
- Gosub FEL
- If SPEL=2 Then Input "Player2's name:";MOTST2$ Else MOTST2$="RoboGamecar"
- Gosub FEL
- If SG>10 Then Goto HEJ
- Input "Ball speed 1 to 3 (3=fastest):";B
- If B>3 Then Goto PATRIK
- If B<1 Then Goto PATRIK
- KICKI:
- Gosub FEL
- Input "Game speed O to 9 (0=fastest):";SH : SH=SH*100
- If SH>900 Then Goto KICKI
- GG:
- L=11 : Rem bana
- P1=0 : P2=0 : Rem poomts
- BANABAKS:
- For R=1 To 14
- Sprite Off R
- Next R
- Screen Hide 0 : Screen Hide 1
- Unpack 7 To 0 : Screen Hide
- Unpack 2 To 1
- Screen Show 1 : Sam Play 3,5,3400
- For VISA=8 To 256 Step 8
- Screen Display 1,,,,VISA
- Wait 2
- Next VISA : Screen Show 0
- Wait 100
- Show
- NYBANA:
- Sprite 1,427,166,5
- Sprite Off 13
- Sprite Off 14
- Limit Mouse 296,169 To 296,170
- F1=0 : F2=0
- SX=287 : SY=103 : Rem spelares start
- BX=291 : BY=166 : Rem Bollstart
- JX=287 : JY=220 : Rem 2spelarstart
- Reserve Zone(1)
- Set Zone 1,150,57 To 419,271 : Rem markerar veggar
- X=0 : Y=0
- Amal Off
- Amal 3,"A 0,(1,1)(2,1)(3,1)(4,1)"
- Amal 5,"A 0,(1,1)(2,1)(3,1)(4,1)"
- Amal 11,"A 0,(6,2)(7,2)(8,2);S: M 70,0,70;M -70,0,61;J S:"
- Amal 12,"A 0,(6,2)(7,2)(8,2);S: M -70,0,60;M 70,0,70;J S:"
- Make Mask
- Sprite 3,287,103,1
- Sprite 5,287,220,1
- Sprite 12,322,257,6
- Sprite 11,251,62,6
- Screen Show 1
- Screen Show 0
- Sam Play 4,1,10000
- Paper 2
- Pen 6
- Locate 2,0
- Print P2;
- Locate 2,31
- Print P1;
- Wait 10
- For R=427 To 291 Step -1 : Sprite 1,R,, : Wait 1 : Next R
- Sam Play 4,11,4000
- If L=11 Then For R=53 To 58 : Ink R : Paint 160,130,1 : Next R : Ink 25 : Paint 160,130,1
- Wait 10
- Amal On
- Rem ******************** Huvudloopen
- HLOOP:
- For SS=0 To SH : Next SS
- Q$=Inkey$ : If Q$="q" Then End
- If Q$="p" Then Wait Key
- A=Joy(1) and 15
- Add SX,JX(A) : Add SY,JY(A)
- If QA$="y" and L=10 Then Sprite 12,572-SX,,
- VEGG:
- Sprite 3,SX,SY,1
- If Zone(X Sprite(3),Y Sprite(3)) Then Goto HIT : Rem kollar om veggkrock
- Add SX,-JX(A) : Add SY,-JY(A) : Goto VEGG
- Rem ******************** datorspelare
- HIT:
- If SPEL=1
- If F2=1
- If JY<200
- If JY>95-(SG*2)
- Sprite Off 13
- F2=0
- X=0
- Y=0
- End If
- End If
- End If
- Sprite 5,JX,JY,3
- If BX=JX
- Goto YLED
- Else
- If BX>JX
- Add JX,1
- Else
- Add JX,-1
- End If
- End If
- YLED:
- If BY=JY-3
- Goto VEGG3
- Else
- If BY>JY
- If Rnd(10)<SG
- Add JY,2
- Else
- Add JY,1
- End If
- Else
- Add JY,-2
- End If
- End If
- VEGG3:
- If Sprite Col(1,5 To 5)
- Y=-2 : Add JY,-1 : Add BY,-2
- If JX>288
- X=-2
- Else
- X=2
- End If
- End If
- Goto HIT2
- End If
- Rem ************************ spelare2
- A=Joy(0) and 15
- Add JX,JX(A) : Add JY,JY(A)
- If QA$="y" and L=12 Then Sprite 11,572-JX,,
- VEGG2:
- Sprite 5,JX,JY,3
- If Zone(X Sprite(5),Y Sprite(5)) Then Goto HIT2 : Rem kollar om veggkrock
- Add JX,-JX(A) : Add JY,-JY(A) : Goto VEGG2
- Rem ************************ Bollen
- HIT2:
- If QB$="y" Then If BY<167+B and BY>166-B Then X=-X
- Add BX,X*B : Add BY,Y*B
- FAST:
- Sprite 1,BX,BY,5
- If BY<59 Then Y=-Y : BY=59 : F2=1 : Screen Display 1,,43,, : Amal Freeze 5 : Sam Play 4,14,4000 : Add BY,Y : Goto HLOOP : Rem Boll OM VEGGKROCK
- If BY>279 Then Y=-Y : BY=279 : F1=1 : Screen Display 1,,43,, : Amal Freeze 3 : Sam Play 4,14,4000 : Add BY,Y : Goto HLOOP : Rem Boll OM VEGGKROCK
- If BON=0 Then Add CC,1 : If CC=1000 Then Sprite 8,385,224,9 : Sam Play 2,2,4000 Else If CC=1100 Then Sprite 8,317,107,9 : CC=900 : Sam Play 2,2,4500
- If Fire(0) and F2=1 Then X=0 : Amal On 3 : Sam Play 4,10,1000 : Y=0 : F2=0
- If Fire(1) and F1=1 Then X=0 : Amal On 3 : Sam Play 4,10,1000 : Y=0 : F1=0
- If BX<147 Then X=-X : BX=147 : Screen Display 1,,43,, : Sam Play 4,14,4000 : Add BX,X : Rem kollar om veggkrock
- If BX>422 Then X=-X : BX=422 : Screen Display 1,,43,, : Sam Play 4,14,4000 : Add BX,X : Rem kollar om veggkrock
- If Sprite Col(3,12 To 12) Then SX=287 : SY=103 : Sam Play 3,12,4000
- If Sprite Col(5,11 To 11) Then JX=287 : JY=220 : Sam Play 3,12,3700
- If Sprite Col(3,5 To 5) Then Gosub FIGHT
- If Sprite Col(1,11 To 12) Then Goto GOAL
- On BON Gosub BON1,BON2
- If Sprite Col(8,3 To 5) Then Gosub BONUS
- If Sprite Col(1,3 To 3) Then A=Joy(1) and 15 Else Goto SP2
- Add BX,JX(A) : Add BY,JY(A) : X=JX(A) : Y=JY(A) : Sam Play 1,13,4000
- SP2:
- If Sprite Col(1,5 To 5) Then A=Joy(0) and 15 Else Goto ETREF
- Add BX,JX(A) : Add BY,JY(A) : X=JX(A) : Y=JY(A) : Sam Play 1,13,4000
- ETREF:
- Screen Display 1,128,42,,
- Goto HLOOP
- Rem ************************ Spelarkrock
- FIGHT:
- If BON<>0 Then BON=0
- For R=1 To 5
- A=Joy(0) and 15
- Add JY,2 : Sam Play 1,13,4000
- Sprite 5,JX,JY,3
- If Zone(X Sprite(5),Y Sprite(5)) Then Goto FIT3 Else Add JY,-13
- FIT3:
- A=Joy(1) and 15
- Add SY,-2 : Sam Play 1,13,4000
- Sprite 3,SX,SY,3
- If Zone(X Sprite(3),Y Sprite(3)) Then Goto FIT2 Else Add SY,13
- FIT2:
- Next R : Return
- Rem *********************** Byte av bana
- GOAL:
- If Sprite Col(1,11 To 11) Then L=L+1
- If Sprite Col(1,12 To 12) Then L=L-1
- Sam Play 1,3,4000 : BON=0
- If L=13 Then P1=P1+1 : Sam Play 2,1,4000 : JJ=1 : J=0 : LB=-1 : Goto MAAL
- If L=9 Then P2=P2+1 : Sam Play 2,1,4000 : JJ=0 : J=1 : LB=1 : Goto MAAL
- Sprite Off : Hide
- Gosub PERSIEN : Sam Play 1,3,1000
- If L=12 Then Unpack 3 To 1
- If L=11 Then Unpack 2 To 1
- If L=10 Then Unpack 4 To 1
- Gosub PERSIENEN : Show
- Screen 1
- Locate 2,0
- Print P2;
- Locate 2,31
- Print P1;
- Goto NYBANA
- Rem ******************** Maal
- MAAL:
- Fade 3 : Sam Play 4,10,5000 : CC=0 : L=11 : Sprite Off : Hide
- Unpack 6 To 0 : Screen To Front 1
- Gosub FEL
- Locate 25,14
- Print "Score Player Goal diff:";GD
- Locate 25,16
- Print P2 : Locate 32,16 : Print MOTST1$
- Locate 25,18
- Print P1 : Locate 32,18 : Print MOTST2$
- Locate 25,20
- Print "Press the red one...";
- Gosub PERSIEN
- If P2-P1=GD Then Goto FLUT
- If P1-P2=GD Then Goto FLUT
- FLESK:
- If Fire(1) Then Sam Play 1,5,3500 : Goto FLESKE
- Goto FLESK
- FLESKE:
- Unpack 2 To 1
- Gosub PERSIENEN : Show
- Unpack 7 To 0 : Screen To Front 1
- Screen 1
- Locate 2,0
- Print P2;
- Locate 2,31
- Print P1;
- GULPS:
- Goto NYBANA
- FLUT:
- Sam Play 4,11,3000
- Wait 200
- Print "GAME OVER."
- Amal Off
- FLESKA:
- If Fire(1) Then Goto FLESKEA
- Goto FLESKA
- FLESKEA:
- Sprite Off
- Cls 1
- Goto NYTT
- Rem ************************ Bonusgrej
- BONUS:
- If Sprite Col(8,3 To 3) Then BON=2 : Sprite Off 8 : CC=0 : Sam Play 3,10,6000
- If Sprite Col(8,5 To 5) Then BON=1 : Sprite Off 8 : CC=0 : Sam Play 1,10,6000
- Return
- BON1:
- A=Joy(0) and 15 : X=JX(A) : Y=JY(A) : Return
- BON2:
- A=Joy(1) and 15 : X=JX(A) : Y=JY(A) : Return
- Rem ***************** Instructions
- INST:
- Gosub FEL
- Locate 25,14
- Print "The game is in three areas:"
- Locate 25,16
- Print "DEFEND,CENTER and SCORE AREA"
- Locate 25,18
- Print "You have to win with 1 to 10 points."
- Locate 25,20
- Print "Key(Q) quit game. Key(P) pauses."
- Locate 25,22
- Print "Press a key..." : Wait Key : Gosub FEL : Goto STAR
- FEL:
- Paper 10 : Pen 14 : Ink 10
- Bar 150,110 To 480,190 : Locate 25,16 : Return
- Data 0,-2,0,2,0,0,-2,0,-2,-2,-2,2
- Data 0,0,2,0,2,-2,2,2,0,0,0,0,0,0,0,0,0,0,0
- PERSIENEN:
- For VISA=8 To 256 Step 8
- Screen Display 1,,,,VISA
- Wait 2
- Next VISA
- Return
- PERSIEN:
- For XX=1 To 6 : Sam Play 1,5,4000 : Next XX
- For VISA=249 To 1 Step -8
- Screen Display 1,,,,VISA
- Wait 2
- Next VISA
- Wait 60 : Return