more Special screens, pop up text and level intermission cutscenes

PewkoGames

Member
[media]https://www.youtube.com/watch?v=K3OxgU0yycY[/media]

So I'm working on a maze game using the base tutorial module. The gist of it is done, now its time to add my own personal touches. Many of them were inspired by the Trogdor Arcade game from homestarrunner:

[media]https://www.youtube.com/watch?v=X6NtvsEL5wg[/media]


The ideas I had are:

after every level is a "level beaten special screen" like in Trogdor
same with game over.

When my character dies or when he gets the powerup, I'd like text to pop up on the screen indicating that either has happened, like in Trogdor

and I also had the idea of having 2 intermission "cut scenes" like in the arcade pacman. 1 with the word "intermission" and an 8-bit mix of the Monty Python and the Holy Grail intermission music, and one spoofing "Lets all Go To The Lobby"

Can anyone help me with any or all of the above ideas? let me know if you can help.
 

dale_coop

Moderator
Staff member
For the cutscenes, I would suggest just use normal screen, hide hud (in screen infos), use invisible monster that execute a warp after some time....
like CutterCross's cutscenes:
http://www.nesmakers.com/viewtopic.php?p=12046#p12046

For your text... maybe autotext tiles based...?
http://nesmakers.com/viewtopic.php?f=3&t=972
 

PewkoGames

Member
I'm currently watching CutterCross's cutscenes tutorial, and its perfect for what I need. The only thing is does it apply to 4.1. And this may seem like a NOOB question, but how do I create that "AI Warp to Screen" script?
 

dale_coop

Moderator
Staff member
Here's a AI warp to screen:
Code:
goWarpToNewScreen:
	LDA #$00
	STA newGameState

	LDA warpMap
	STA currentMap
	CLC
	ADC #$01
	STA temp
	GoToScreen warpToScreen, temp, #$02
	
	LDA #$00
	STA playerToSpawn
	
	LDX player1_object
	DeactivateCurrentObject
	
	LDA #$01
	STA loadObjectFlag

	LDA mapPosX
	STA newX
	LDA mapPosY
	STA newY


And if you want to activate a Text on a powerup pickup, add these lines at the end of your specific PowerUp script:

Code:
	;; Here, you can set the text you want (text0 or text1 or text2 or text3 from the TextGroup assigned to your screen):
	LDA #$00
	STA textVar
	
	;; activate the text-box:
    LDA gameHandler
    ORA #%00100000
    STA gameHandler
    LDA #%10000000
    STA textboxHandler
 

dale_coop

Moderator
Staff member
Create a new script in the "Routines\Basic\ModuleScripts\AiScripts" folder (or duplicate one).
Then assign it in the "Project Settings > Script Settings" to a unused "AI Action ??", then you can give a name to this action in the "Project Settings > Project Labels" (Actions Types).
 

CutterCross

Active member
There's already an AI Action in 4.1 called WarpToNewScreen.asm, which serves the same purpose. (Joe probably added that in after he saw my cutscene analysis video tbh.) Though you probably want to replace it with Dale's script since the default one tends to start the music over every time you warp.
 

PewkoGames

Member
Okay this is driving me nuts, so I am totally lost since I was following the old tutorial. I deleeted the AI action number 11 which I renamed to be AI warptoscreen. Now I can't start the game because the file is missing and I don't have a clue on how to get it back. it was a Null. can someone walk me through this?
 

PewkoGames

Member
Phew okay I saved my game, figured out THAT poblem. Now if someone could explain how to do the cutscenes in 4.1 please help. Thank you
 

dale_coop

Moderator
Staff member
Just make screens, with graphics (assets/ monster as animated tiles /...) like CutterCross... (use hide hud in screen infos if you want).
And for scripts don’t remove scripts from the explorer, just make a new script or duplicate an existing one (in the Routines\Basic\ModuleScripts\AiScripts folder), then in “Project Sertings > Script settings” change the script assigned to the AI Action 11 to the script you made...
Now you can use this warp for a monster.
Make invisible monster set it to warp after some seconds. So your screen will be displayed for some seconds before warping to the next one

CutterCross videos and tutorial videos are great resources, if you haven’t watched all of them, I strongly suggest you to.
 

PewkoGames

Member
I FIGURED IT OUT! Thank you CutterCross and Dale! Took a bit of fiddling but it worked. Now how would I do a game over screen? I assume its different then level advancing. Another thing is that with the basic Maze module, you only have one instant death and I want it to be instant death but 3 lives. How would I do that?

I'll post a video of the working cutscene by the way :)
 

dale_coop

Moderator
Staff member
For the 3 lives... first, check that your HUD variable myLives initial value is set to "3".
Then, duplicate your "PlayerLoseLife.asm" script (located in the "" folder) for example as "PlayerLoseLife_withLives.asm" and modify that script to looks like that (I copy/paste from the scrolling module one):
Code:
;;; do loss of life stuff here
	DEC myLives
	LDA myLives
	BNE gameNotOver
	;;do gameover stuff here.  Warp to screen?  Show animation?  Just restart?
	JMP RESET
	
gameNotOver:
	;;;;;
	;;; do warp to continue screen stuff here.
	LDA #$00
	STA newGameState
	LDA continueMap
	CLC
	ADC #$01
	STA temp
	GoToScreen continueScreen, temp, #$04	
	LDA #$00
	STA playerToSpawn
	;LDX player1_object
	;DeactivateCurrentObject	
	LDA #$01
	STA loadObjectFlag
 
	LDA continuePositionX
	STA newX
	LDA continuePositionY
	STA newY	

	;; player1 reset health:
	LDA #$03		;;  <--- HERE reset with your Health value
	STA myHealth

And in "Project Settings > Script Settings", assign that script to the "Handle Lose Life" element.
 

PewkoGames

Member
Awesome! okay I did that, how would you implicate that to the HUD? I want it to say "LIVES:3" and go down when you lose a life
 

dale_coop

Moderator
Staff member
Go to your HUD & Boxes, in the user variables, rename a unused one (for ex, UserVar_6) to "myLives" set a initial value of "3" and display it in the Elements tab as a number.
You will have to test to see if the HUD is automatically update. Else we will have to add some lines, somewhere :p
 

PewkoGames

Member
Yes, however when I get to the second life, I'm noticing that in the "01234567" score string, the 5 turns black. and when i run into an enemy the game freezes. Odd
 
Top Bottom