D-Bug & Automation Forum
D-Bug & Automation Forum >> Coding >> Sauron's homework! (assignment #1 - bouncy)
https://d-bug.mooo.com/dbugforums/cgi-bin/yabb2/YaBB.pl?num=1304238634

Message started by ggn on 01.05.11 at 08:30:33

Title: Re: Sauron's homework! (assignment #1 - bouncy)
Post by Sauron on 04.05.11 at 05:32:14
CJ helped me a bit with some corrections in IRC, so here's the udpated code.

[code]ball_x            dc.l      160            ; ball x position
ball_y            dc.l      120            ; ball y position
x_direction      dc.l      1            ; vertical direction of ball
y_direction      dc.l      1            ; horizontal direction of ball
topborder      dc.l      0            ; sets top border
bottomborder      dc.l      240            ; sets bottom border
leftborder      dc.l      0            ; sets left border
rightborder      dc.l      320            ; sets right border


start:

     move.l      ball_x,d0            ; x coordinate for ball
     move.l      ball_y,d1            ; y coordinate for ball

     sub.l      x_direction,d0            ; moves ball left by one pixel
     add.l      y_direction,d1            ; moves ball down by one pixel


moveball:

     move.l      d0,ball_x            ; updates ball_x variable
     move.l      d1,ball_y            ; updates ball_y variable

     cmp.l      leftborder,ball_x      ; compares left border to x position
     beq      .move_right            ; branches if equal to left border

     cmp.l      rightborder,ball_x      ; compares right border to x position
     beq      .move_left            ; branches if equal to right border

     cmp.l      topborder,ball_y      ; compares top border to y position
     beq      .move_down            ; branches if equal to top border

     cmp.l      bottomborder,ball_y      ; compares bottom border to y position
     beq      .move_up            ; branches if equal to bottom border

     rts                        ; returns to moveball

.move_right:

     move.l      #1,x_direction            ; then starts moving the ball right
     rts                        ; returns to moveball

.move_left:

     move.l      #-1,x_direction            ; then starts moving the ball left
     rts                        ; returns to moveball

.move_down:

     move.l      #1,y_direction            ; then moves the ball down
     rts                        ; returns to moveball

.move_up:

     move.l      #-1,ydirection            ; then moves the ball up
     rts                        ; returns to moveball[/code]

D-Bug & Automation Forum » Powered by YaBB 2.6.0!
YaBB Forum Software © 2000-2022. All Rights Reserved.