A bunch of specific questions

PewkoGames

Member
Okay

So I'm working on an arcade game (using the adventure module) titled "Medal of Gustave" revolving around Gustave the crocodile (an actual crocodile that exsists that won't stop killing people. Google it i'm not joking) eating as many egyptian pharoahs as he can while avoiding Kaiser Wilhelm...who for some reason is in Egypt.

The object of the game: You control the crocodile. In the play area there are Pyramids that randomly spawn Pharoahs. The pharoahs don't hurt you,and die with one hit. you have to kill a set number of pharoahs to spawn mega pharoah, who when you kill him, triggers Gustave to turn into a giant pacman style head that can destroy the pyramids. destroy all the pyramids to go to the next level. Kaiser Wilhelm cannot be killed. He roams around the area, and its instand death when he's touched. He also randomly fires a projectile.

Heres what I have thus far:

0_1_by_gruntchovski-dcpeu74.jpg


So I got gustuve moving and when you press B he chomps.

Kaiser Wilhelm moves around and when you touch him he Damages gustave.


Problems:

So Kaiser willhelm moves around but he is not firing the projectile even though I think I set it right. I followed the adventure tutorial, under the shooting statue segment.

Questions:

Is it possible to make a monster spawning area? That spawns infinate monsters. Like the oil kegs in Donkey Kong Country.

The monsters in the spawn pyramids do not hurt you. Is that possible to do? I'm sure it is I just have no idea how to do that. Also of note, I can't figure out how to make a monster death animation. In the tutorial, you kill a monster and it dissapears. When you kill a pharoah monster I want there to be a dead pharoah sprite for a second and then it disappears. That wasn't covered in the tutorial.

Is it possible to have the spawn area destrctable after a power up has been achived. My goal was to have the spawn pyramids be able to be destroyed once you kill the mega pharoah. I had the idea of having gustave transform into a giant pacmman like head to chomp the pyramids up. I have a plan B in which mega pharoah drops a Bazooka and you can fire a projectile at them instead. Both options you have a limited amount of time to use it. In the Hud some kind of meeter could be used. or timer.

Speaking of the Hud:

I want to have a kill system, where when you kill a pharoah, a skull appears in a row of lets say 5(I need to figure out a good number thats just a placeholder). 5 empty skulls and each one fills once the pharoah is dead.
I'm assuming that is possible too, But there is probably specific way of doing that.

This is a score based game so obviously there needs to be a score counter. Since that wasn't covered in the adventure tutorial maybe that could be covered in a future video.

Also is it possible to record "High Scores" in NESmaker? After gameover you can enter initials and have a list of high scores on the title screen?

Another thing is, with levels, each level is one screen. Once you beat the level it goes to a different screen. Is that possible to do in the adventure module? right now, I have a border of solid tiles around the walkable area. now ideally I'd like to have the screen without them since it gives more room, but I'm not sure how to have the player be confined to one screen without solid tile borders.

Let me know if anyone can help/give some pointers. I may be new to the software but I'm learning REALLY quick.

Thanks!
 

hairycarrot

New member
I want to know the same thing about this. So far I made a partial workaround.
Is it possible to make a monster spawning area? That spawns infinate monsters. Like the oil kegs in Donkey Kong Country.

I made a monster that spawns other monsters, but the monster it spawns is a game object. I followed the platformer tutorial for fireballs, but instead of making a game object that shoots fireballs, I made a monster that shoots fireballs. I made the fireball be a monster by checking the "is monster" box and then set all the other variables like it was a monster instead of a fireball.

What I really want is to make it spawn other monsters that are in the monster group selected for the screen, but I can't find a way to reference a monster.

Also your game looks awesome
 

dale_coop

Moderator
Staff member
Modify a script that create object...
Monsters start at #$10, and are in order on your hierarchy list, but that monster you have this spawner create must ALSO be loaded in the group for the screen. If there are too many monsters on the screen, you might get slowdown...
 

Nintend0Nerd

New member
Did anybody ever figure out how to do death animations? My boss character needs to reappear later, so I want to make it look like he flees rather than just disappearing.
 

dale_coop

Moderator
Staff member
The monsters death animation is in the handlemonsterdrops script... the last line of the scripts if I remember well.
 

dale_coop

Moderator
Staff member
In NESMaker, in the hierarchy (the treeview on the left side of NESMaker ;))... if you expand the "Monster Graphics Banks > Graphics Bank 0 > Monsters" folder:
the 1st monster of the list is the $#10 object, the second monster is the $#11 object, the third is the $#12 object, ... (if I remember well).

So, you could make a simple Ai script (for example" SpawnMonster1.asm") like this:
Code:
;;; monster objects drop another monster object
	LDA Object_x_hi,x
	STA temp
	LDA Object_y_hi,x
	STA temp1

	;;; here, we'll create a new monster object (monster starts at $#10 It means $#10 is the 1st monster in the hierarchy list, $#11 the 2nd monster, $#12 the 3rd, ...)
	CreateObject temp, temp1, #$10, #$00
The script takes the position X and Y of the current object (the monster that will execute this script) and create a new object: the $#10 (=the 1st monster in the hierarchy).

You could assign it in the "Project settings > scripts setting" to an unused IA reaction (change its name in "Project Labels") and use it in your monster's action steps.

(Note: Your monster that will be created, needs to be in the monster group assigned to your screen.)
 

hairycarrot

New member
Ah thanks! That's so much better than what I thought I had to do.

I was searching through all the ASM scripts trying to find the spot where monsters were called from groups on the game screens.
I thought I had to find the spawn settings for the page and tell it to call the monster that was in the group by the spot it was assigned to the group.

This seems like I can do it!

Thanks so much.
 

hairycarrot

New member
Oh and I thought I had to find the monster itself in the code and put the instructions in the monster's code.
The flag attribute is so much more straightforward.
 

PewkoGames

Member
Ah okay! Can you do monster spawning in the ADVENTURE module though? Thats what I'm using.

Nest question,

Now What I want to do is have the monsters that spawn, not to any damage to the player. You touch them and they die. Like Power Pellets in Pacman only they move. I want to have it where when you kill like lets say 10 of them It triggers the player to turn into a Pacman style head and gives him the ability to kill other monsters that normally cannot be killed. If that makes sense.

I changed the main idea a bit. Now its basically your an alligator on a golf course. You have to kill 10 golfers, and avoid the scottsmen. After you kill the 10 golfers, then you turn into a giant pacman head and you can kill the scotsmen, and move onto the next level.

I'll post screens, but any help would be appreciated, and I am using the Adventure module
 

PewkoGames

Member
0_2_by_gruntchovski-dcpswqu.jpg

gator_by_gruntchovski-dcpswqr.jpg

golfers_by_gruntchovski-dcpswqm.jpg

scotsman_by_gruntchovski-dcpswqj.jpg

Here are screens.

The Golfers don't harm you, you touch them, they die and a skull appears on one of the Kill Count slots. I'm using Keys in the hud for that.

The Scotsmen are instant death when you touch them, and you lose a life (I want this to be lives instead of health. Lose 3 lives and its game over)

You can kill the scots once you kill the required golfers. I want them to run away from the player to make it more challenging because you can only kill them for a limited time.

I'm having a few issues such as even though I set the border tiles to solid, the player still goes to another screen even though its one screen per level.

Any ideas on how to achieve this?
 

hairycarrot

New member
Any ideas on how to achieve this?
I feel like in all the tutorials, there are similar things to what you describe, if you will make minor code edits, too.
If you watch the beta platformer tutorial, the adventure tutorial, and the platformer tutorial in that order, then you have many things that are close already. The tutorials build on eachother.

Bunches of code ideas can be mixed between the two if you test them out one at a time.
I als had my monster that spawned not hurt the player at one point. I think it was by unchecking the monster flag?
I haven't investigated that part a lot yet. I know I'm going to make my spawned monsters be a jump challenge. They won't hurt you but they are hard to jump on.
 

hairycarrot

New member
@PewkoGames
I'm having a few issues such as even though I set the border tiles to solid, the player still goes to another screen even though its one screen per level.
Are you saying that it is ignoring the tile collisions? As in, in the screen editor, when you hover over a side wall, it shows solid but the alligator can walk through it when you test?

I was thinking about another way to do spawned monsters that can't hurt you. Make it be your key game object, but assign animation and movement to it. I haven't tried it out yet for comparisons. I still stuck on this other thing.

@Dale_Coop Thank you. I don't know how to share the game.
I'm very pleased with how your solution works. I have been trying to work out very specific things, so I haven't built much yet.

Now I have a next step for making these spawning monsters. I would like to be able to have the flag spawn whatever monster is set to slot two for the current group.
From what I can tell of the code, it should be calling the monster data based on the screen settings, and storing them to relative variables for the screen.
But I can't find the way to use the variables, because I don't understand how all the parts are interacting.

This part appears to be storing the monster IDs to the variables for the screen. I found it in LoadScreenData.asm. It starts at line 297.
Code:
	LDA #SCREEN_DATA_OFFSET
	CLC
	ADC #$2a
	TAY
	LDA (temp16),y
	STA objectID
	INY 
	LDA (temp16),y
	STA objectID+1
	INY 
	LDA (temp16),y
	STA objectID+2
	INY 
	LDA (temp16),y
	STA objectID+3
	;JSR ResetMonsters
	LDA #SCREEN_DATA_OFFSET
	CLC
	ADC #$0b
	TAY ; day normal mon 1
	;;;;; do if for each screen state state here
;	JSR findMaxMonsters
	LDA #SCREEN_DATA_OFFSET
	CLC
	ADC #$3a
	TAY ; day normal mon 1
	LDA (temp16),y
	STA SongToPlay
	RTS

So far I've made these tests, with notes commented for each line.
Code:
	CreateObject temp, temp1, #$15, #$00 worked but called specific monster - next goal is slot in group for screen
	;CreateObject temp, temp1, objectID+1, #$00 ;caused player to spawn
	;CreateObject temp, temp1, ObjectToLoad, #$00 ;caused screen to load random data but still ran

So I am stuck. I cannot find how these different code blocks refer to eachother between the files.
 
Top Bottom