Do you want to learn how to make a NES game in NESmaker? Then watch the new tutorial videos (unofficial) on board-b’s YouTube channel.
Let’s make a NES game and have fun doing it.
Do you want to learn how to make a NES game in NESmaker? Then watch the new tutorial videos (unofficial) on board-b’s YouTube channel.
Let’s make a NES game and have fun doing it.
I wanted to thank you for your comment on YouTube, I managed to get the projectile to come out of the right spot when he’s facing right now by changing the numbers you mentioned. For some reason when he faces left it shoots from the top right of the sprites (it doesn’t seem like it is observing the player facing). Thanks for all the work you’re doing on these videos. I finally feel like I’m getting somewhere in my game.
I’m glad to hear that you feel like you’re making progress. So if you’ve been following the steps in the video and have made a player sprite that is 2 x 2 tiles big, then it should work if you make sure your shootProjectile script looks like this:
LDA powUpGhostbullet
CMP #1
BEQ hasGhostbullet
JMP +canNotShoot
hasGhostbullet:
;;; Create a Projectile.
;;; Assumes that the projectile you want to create is in GameObject Slot 01.
;;; Assumes variable called myAmmo exists.
;;; assumes myAmmo is in hud element 8.
;LDA myAmmo
;BNE +canShootMega
LDA #$01 ;; assumes normal projectile is in 1
STA tempz ;; we will use tempz to hold which type of projectile.
;;; if I had no special ammo, i’ll just use normal projectile
; JMP +shootThing
;+canShootMega:
;;; but if i DID have ammo, I’ll shoot mega shot!
;LDA #$02 ;; assumes mega projectile is in 2.
;STA tempz
;; there is ammo here.
;DEC myAmmo
; UpdateHudElement #$03 ;; change this to which element shows myAmmo.
;+shootThing
TXA
PHA
TYA
PHA
LDX player1_object
LDA Object_x_hi,x
CLC
ADC #$04
STA tempA
LDA Object_screen,x
ADC #$00
STA tempD
LDA Object_y_hi,x
CLC
ADC #$04
STA tempB
LDA Object_direction,x
AND #%00000111
STA tempC
CreateObjectOnScreen tempA, tempB, tempz, #$00, tempD
;;; x, y, object, starting action.
;;; and now with that object, copy the player’s
;;; direction and start it moving that way.
LDA tempC
STA Object_direction,x
TAY
LDA DirectionTableOrdered,y
STA temp1
TXA
STA temp
StartMoving temp, temp1
PLA
TAY
PLA
TAX
+canNotShoot:
RTS
It’s important that you only change the numbers I have marked in the attached picture (if you need to change them at all).
My player sprite is 3 wide x 4 high, I changed only those two numbers and it only fixed it when I’m shooting to the right. I don’t know if it’s because of the larger player sprite or something else. I’m using the shootprojectile script from the Base 4.5 inputs (I’m making a single screen platformer, similar to Battle Kid with no scrolling) and I modified those numbers if that helps.
I see. That’s pretty big for a NESmaker sprite. I would recommend something like ADC #$0B (the letter B for HEX 11) for both numbers. That should make it come out of the middle of the sprite. Also make sure the bounding boxes of your player object and the projectile object looks OK. If you have more issues with this you should definitely post it at the NESmaker forum. There are a lot of great people there who are willing to help with stuff like this, and the solution will be there if other people have the same issue.
NESmaker forum: http://www.nesmakers.com
These 2 numbers were the only thing I changed in the script.