Now that the main character can shoot, it should shoot something, so I need to create enemies.
When I was starting, my 7 year old daughter passed by my computer, asked me what I was doing and told me that she wanted to create the testing monster.
She called this "The Aqualate". I needed this to be on screen and needed to make it move on its own, so I needed to create some of this beautiful code.
First of all, I need 3 variables, one for the position in X, one for the position in Y and one for the stage of movement it is (we will go over it briefly).
ax: .res 1 ; Aqualate x position ay: .res 1 ; Aqualate y position al: .res 1 ; Aqualate in the loop
For now I put some initial values to place it somewhere
LDA #$50STA axLDA #$80STA ay
Now, I need a fixed pattern for the enemy, let's say an easy one, so let's make the Aqualate move in squares. Here comes the third variable into the game. The position status, the position has 4 status ($00, $01, $02 and $03), every status has a place and in every cicle the al variable increments in one and changes the place of ay and ax. If incrementing the variable results in $04, then it goes to $00 again.
aqualate: LDA #$00 ;in the original position x+1, y-1 CMP al BNE :+ LDA ax CLC ADC #05 STA ax LDA ay SEC SBC #05 STA ay : LDA #$01 ;position 2 x+1, y+1 CMP al BNE :+ LDA ax CLC ADC #05 STA ax LDA ay CLC ADC #05 STA ay : LDA #$02 ;position 3 x-1, y+1 CMP al BNE :+ LDA ax SEC SBC #05 STA ax LDA ay CLC ADC #05 STA ay : LDA #$03 ; position 4 x-1, y-1 CMP al BNE :+ LDA ax SEC SBC #05 STA ax LDA ay SEC SBC #05 STA ay : ;update LDA al CLC ADC #01 STA al LDA #05 CMP al BNE :+ LDA #00 STA al : RTS
And now in the engine zone, in every cicle I need to call this function
JMP aqualate
The last part is placing it into the screen, for that I assigned the aqualate the addresses from $0214 to $0217. So I only need to put this into the updatesprites function
;Aqualate ($0214 to $0217) LDA ay STA $0214 LDA #$02 STA $0215 LDA #$00 STA $0216 LDA ax STA $0217
And about Megaman 1, well, I could beat Cutman, but the rest is terribly hard. I have no skills :(
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse