[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

2473.0. "amigabasic objects :-(" by GUCCI::HERB () Wed Apr 12 1989 18:19

    ON COLLISION GOSUB HIT
    COLLISION ON
    OPEN"MANSTAND" FOR INPUT AS 1
    OPEN"PLANTSTAND" FOR INPUT AS 2
    OBJECT.SHAPE 1,INPUT$(LOF(1),1)
    OBJECT.SHAPE 2,INPUT$(LOF(2),2)
    CLOSE 1,2
    OBJECT.X 1,77
    OBJECT.Y 1,55
    X=222
    HI:
    OBJECT.START
    LOCATE 13,13
    I = COLLISION(0)
    J = COLLISION(I)
    PRINT"J"J:PRINT"I"I
    IF X > 260 THEN A = 3
    IF X < 5 THEN A = 4
    IF A = 3 THEN X=X-3
    IF A = 4 THEN X=X+5      
    IF A = 0 THEN X=X-5
    OBJECT.ON
    OBJECT.X 2,X
    OBJECT.Y 2,55
    GOTO HI
    HIT:
    J=J+1
    LOCATE 1,1
    PRINT "YOU ARE HIT"
    PRINT J
    RETURN
    
    The problem I am having with this program is that only the first
    collision is detected and I want it to detect the object 1 everytime
    object 2 is touching it.  I think I will have to use a clear command
    but I do not want to clear all the varibles.  If you have time make
    2 bobs with the object editor and type in this short program and
    see if you can figure out what is wrong.  Could it be this command:
    OBJECT.SHAPE 2,INPUT$(LOF(2),2). The book never tells you what to
    do when you have more than one object.  Any ideas???????
    
    matt
    
T.RTitleUserPersonal
Name
DateLines
2473.1aarrrrrgggghhhhhGUCCI::HERBFri Apr 14 1989 16:066
    If nobody has any ideas on .0 then has anybody used GFA basic,A/C
    basic or HiSoft basic and could tell me if support objects better
    than Amigabaic?
    
    matt (I'm desperate!!!)
    
2473.2bouncy objectsANT::JANZENT - 500 picoseconds and countingSat Apr 15 1989 17:1362
'4-15-89 Thomas E. Janzen for the public domain
'derived from Amiga Basic but this one works.
' 4-15-89 modified to make the objects reliably bounce off
' one another as well as off the window borders, until they 
' somehow skipover the edge.
' requires two Bob objects, redthing and firstobject, in the 
' directory Sources:Objects/

WINDOW 4,"animation",(110,30)-(580,170),15
ON COLLISION GOSUB bounceoff
GOSUB bounceoff
COLLISION ON
OPEN "sources:objects/firstobject" FOR INPUT AS 1
  OBJECT.SHAPE 1,INPUT$(LOF(1),1)
CLOSE 1
OPEN "sources:objects/redthing" FOR INPUT AS 1
  OBJECT.SHAPE 2,INPUT$(LOF(1),1)
CLOSE 1
OBJECT.X 2,300
OBJECT.Y 2,100
OBJECT.VX 2,-65
OBJECT.VY 2,0
OBJECT.AX 2,0
OBJECT.AY 2,-10
OBJECT.X 1,1
OBJECT.Y 1,5
OBJECT.VX 1,65
OBJECT.VY 1,0
OBJECT.AX 1,0
OBJECT.AY 1,10
OBJECT.ON  1,2
OBJECT.START  1,2
WHILE 1
SLEEP
WEND
bounceoff:
  saveid = WINDOW(1)
  WINDOW 4
  wounded=COLLISION(0)
  IF wounded=0 THEN RETURN
  Obstacle=COLLISION(wounded)
  IF Obstacle=-2 OR Obstacle=-4 THEN GOSUB wall
  IF Obstacle=-1 OR Obstacle=-3 THEN GOSUB floorceiling
  IF Obstacle=2 OR Obstacle=1 THEN GOSUB objects:
  OBJECT.START
  WINDOW saveid
RETURN
wall:
  oldvx=OBJECT.VX(wounded)
  OBJECT.VX wounded,-oldvx
RETURN
floorceiling:
  oldvy=OBJECT.VY(wounded)
  OBJECT.VY wounded,-oldvy
RETURN
objects:
  oldvx=OBJECT.VX(wounded)
  OBJECT.VX wounded,-oldvx
  oldvy=OBJECT.VY(wounded)
  OBJECT.VY wounded,-oldvy
RETURN