|
Post by tomahomae on Jan 12, 2018 8:33:25 GMT -5
Here is a screenshot of buggy "VN mode". Strange text shifting was removed. But I still couldn't understand how to remove the shifting of background. something like this happened to me, because I was loading more than 1343 tiles in total using the loadtiles. lets say you load 300 tiles for sprites then you load 1300 tiles for a background you see that in total it is using 200 (sprites) + 1300 (bkg) = 1500 tiles, more than supported. to correct you can overwrite some tiles you are not using, or resize the background image. Hmmm... First 256 tiles is occupied by font. Full-screen background is requires another 1120 tiles. 256+1120=1376. However the backgrounds of Casanova Jr. early versions has been used 1120 tiles too, but they used to be drawn quite well! What the mystery...
|
|
|
Post by tomahomae on Jan 10, 2018 21:13:29 GMT -5
Recently I decided to create a genre mix of classic RPG, visual novel (uses a pieces of code from my old VN engine), space-sim (a la Elite), QTE-action (a la Shenmue) and adventure (a la Psy-O Blade), which is based upon the " Час быка" ( Chas Byka, eng. Bull's Hour or The Hour of Ox) novel by russian sci-fi writer Ivan Yefremov. For this moment, the different genres elements won't be fused to whole - for a first time I added a menu to the start of sketch demo, to choose a one of available game mechanics types (for this moment it's a top-down walking and visual novel). I used the one of Xenogears (this game has a some common plot elements with original "Bull's Hour" book) sprites in the "jRPG mode" because of absence of own original graphics. In the VN mode, I planned to use a screeshots from the WIP cartoon adaptation (see below) of "Bull's Hour" - which looks like was abandoned by its creator for a long time ago - as a backgrounds. Source and screenshots are attached. RPG example.rar (244.02 KB)
|
|
|
Post by tomahomae on Dec 28, 2017 23:15:26 GMT -5
Project name: Операция "Свинцовый туман" Sketch source (warning, comments is onto Russian!): DISABLE SCREEN option title,"Battle Tank 1" ' Game Title option TEXTSTART, 0, 0 ' Default is 1, 1 option TEXTHEIGHT, 30 ' Default is 26 option TEXTWIDTH, 39 ' Default is 38
palettes palette0,0,0,16 palettes palette1,1,0,16 palettes ExploPal,2,0,16
'Zagotovka spryta Tank - Player 1 loadtiles TankTiles,12,256 tank=addsprite(2,2) propsprite tank,256,0 movesprite tank,280,232 Body=0 tankSpeed=1
'Zagotovka spryta puli sozdana spryatana za ekranom LoadTiles bulletData,1,268 bullet1=AddSprite(1,1) PropSprite bullet1,268,0 MoveSprite bullet1,0,480 bullet_1=0 bullet1Speed=3 LoadTiles ExplosionTiles,4,273 explosion1=addsprite(2,2) propsprite explosion1,273,2 MoveSprite explosion1,0,480 explosion_1=0
'Zagotovka spryta vraga sozdana raspolagaetsya randomno v ramkah ekrana loadtiles EnemyTiles,4,269 Enemy1=AddSprite(2,2) PropSprite Enemy1,269,1 MoveSprite Enemy1,128+RND(304),128+RND(112) Enemy_1=10 '10 popadaniy
ENABLE SCREEN
on vblank gosub main enable interrupt vblank end
main: 'DeBug Info: locate 0,16: print "x=";SpritePosX(tank);" y=";SpritePosY(tank) locate 2,16: print "j=";j 'End DeBug Info
GoSub Controller
If bullet_1=1 Then ShiftSprite bullet1, 0,-1-bullet1Speed ElseIf bullet_1=2 Then ShiftSprite bullet1, 0,1+bullet1Speed ElseIf bullet_1=3 Then ShiftSprite bullet1, -1-bullet1Speed,0 ElseIf bullet_1=4 Then ShiftSprite bullet1, 1+bullet1Speed,0 ElseIf bullet_1=5 Then ShiftSprite bullet1, -1-bullet1Speed,-1-bullet1Speed ElseIf bullet_1=6 Then ShiftSprite bullet1, 1+bullet1Speed,-1-bullet1Speed ElseIf bullet_1=7 Then ShiftSprite bullet1, -1-bullet1Speed,1+bullet1Speed ElseIf bullet_1=8 Then ShiftSprite bullet1, 1+bullet1Speed,1+bullet1Speed EndIf
'Udalenie puli (skritie za ekran), esli ona vihodit za granici vidimogo ekrana (nachalo ekrana-verhniy ugol dlya spraytov x=128 y=128) If bullet1>0 Then If SpritePosX(bullet1) < 128 or SpritePosX(bullet1) > 440 or SpritePosY(bullet1) < 128 or SpritePosY(bullet1) > 352 Then MoveSprite bullet1,0,480 bullet_1=0 EndIf EndIf
' esli pulya kasaetsa protivnika Enemy1 If Enemy_1>0 Then If SpritePosX(bullet1) > SpritePosX(Enemy1)-1 and SpritePosX(bullet1)+8 < SpritePosX(Enemy1)+14+8 Then 'Left and Right Enemy If SpritePosY(bullet1) > SpritePosY(Enemy1)-1 and SpritePosY(bullet1)+8 < SpritePosY(Enemy1)+14+8 Then 'Up and Down Enemy 'Boom explosion_1=5 MoveSprite explosion1,SpritePosX(Enemy1),SpritePosY(Enemy1)
'pulya skrivaetsya i deactiviruetstya MoveSprite bullet1,0,480 bullet_1=0
'otnimaetsa jizn u protivnika i on peremeshaetsya Enemy_1-- If Enemy_1>0 Then MoveSprite Enemy1,128+RND(304),128+RND(112) Else MoveSprite Enemy1,0,0 EndIf EndIf EndIf EndIf
If explosion_1>0 Then GoSub Explode1 GoSub Timer60 return
Controller: 'Bit Hex Decimal Button '0 &h001 1 Up '1 &h002 2 Down '2 &h004 4 Left '3 &h008 8 Right '4 &h010 16 B '5 &h020 32 C '6 &h040 64 A '7 &h080 128 Start '8 &h100 256 Z (6-Button) '9 &h200 512 Y (6-Button) '10 &h400 1024 X (6-Button) '11 &h800 2048 Mode (6-Button)
c=j j=joypad(0)
'Start If j.7 and c.7=0 Then goSub Pause EndIf
'Left If j.2 and j.0=0 and j.1=0 Then propsprite tank,260+hfliptile(1),0 Body=2 If SpritePosX(tank)>128 Then ShiftSprite tank,-1-tankSpeed,0 EndIf 'Right If j.3 and j.0=0 and j.1=0 Then propsprite tank,260+vfliptile(1),0 Body=3 If SpritePosX(tank)<432 Then ShiftSprite tank,1+tankSpeed,0 EndIf 'Up If j.0 and j.2=0 and j.3=0 Then propsprite tank,256+hfliptile(1),0 Body=0 If SpritePosY(tank)>128 Then ShiftSprite tank,0,-1-tankSpeed EndIf 'Down If j.1 and j.2=0 and j.3=0 Then propsprite tank,256+vfliptile(1),0 Body=1 If SpritePosY(tank)<336 Then ShiftSprite tank,0,1+tankSpeed EndIf 'Left+Up+ If j.2 and j.0=1 and j.1=0 Then propsprite tank,264+hfliptile(1),0 Body=4 If SpritePosX(tank)>128 and SpritePosY(tank)>128 Then ShiftSprite tank,-1-tankSpeed,-1-tankSpeed EndIf 'Right+Up If j.3 and j.0 and j.1=0 Then propsprite tank,264,0 Body=5 If SpritePosX(tank)<432 and SpritePosY(tank)>128 Then ShiftSprite tank,1+tankSpeed,-1-tankSpeed EndIf 'Right+Down If j.0=0 and j.1 and j.3 Then propsprite tank,264+vfliptile(1),0 Body=7 If SpritePosX(tank)<432 and SpritePosY(tank)<336 Then ShiftSprite tank,1+tankSpeed,1+tankSpeed EndIf 'Left+Down If j.1 and j.2 and j.3=0 Then propsprite tank,264+vfliptile(1)+hfliptile(1),0 Body=6 If SpritePosX(tank)>128 and SpritePosY(tank)<336 Then ShiftSprite tank,-1-tankSpeed,1+tankSpeed EndIf
'A button If j.6 and bullet_1=0 Then If Body=0 Then 'Pulya poyavlyaetsya vverhu MoveSprite bullet1,SpritePosX(tank)+7,SpritePosY(tank) bullet_1=1 ElseIf Body=1 Then 'Pulya poyavlyaetsya vnuzu MoveSprite bullet1,SpritePosX(tank)+7,SpritePosY(tank)+16 bullet_1=2 ElseIf Body=2 Then 'Pulya poyavlyaetsya slevo MoveSprite bullet1,SpritePosX(tank),SpritePosY(tank)+7 bullet_1=3 ElseIf Body=3 Then 'Pulya poyavlyaetsya spravo MoveSprite bullet1,SpritePosX(tank)+16,SpritePosY(tank)+7 bullet_1=4 ElseIf Body=4 Then MoveSprite bullet1,SpritePosX(tank)+2,SpritePosY(tank) bullet_1=5 ElseIf Body=5 Then MoveSprite bullet1,SpritePosX(tank)+14,SpritePosY(tank) bullet_1=6 ElseIf Body=6 Then MoveSprite bullet1,SpritePosX(tank)+2,SpritePosY(tank)+15 bullet_1=7 ElseIf Body=7 Then MoveSprite bullet1,SpritePosX(tank)+14,SpritePosY(tank)+15 bullet_1=8 EndIf End If
Return
Explode1: explosion_1-- If explosion_1=0 Then MoveSprite explosion1,0,480 return
Pause: Sleep 1, TVBLANK ' MoveSprite Pause0,284,240
while 1 c=j j=joypad(0)
'Start If j.7 and c.7=0 Then Return EndIf
wend 'End Pause
Timer60: '''''''TIMER''''''''' Frame++
if Frame=60 then Frame=0 Sec++ ' Sec=Sec+1 endif
if Sec=60 then Sec=0 Min++ ' Min=Min+1 endif
if Min=60 then Min=0 ' Min=Min+1 endif ''''''TIMER END''''''
Return
palette0: ' dataint $0000,$0EEC,$0864,$0420,$0642,$0280,$0CA8,$000E ' dataint $0200,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ' dataint $f0f,$066,$fff,$29e,$9ee,$a0a,$05a,$aaa ' dataint $555,$f55,$5f5,$ff5,$55f,$f5f,$5ff,$fff ' datafile pal.BIN,BIN dataint $000,$b44,$d99,$fbb,$fff,$666,$444,$222 dataint $00f,$290,$200,$420,$642,$964,$db9,$ffd
palette1: ' dataint $0000,$0CCA,$0642,$0220,$0422,$0260,$0C86,$000C ' dataint $0200,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ' dataint $000,$b44,$d99,$fbb,$fff,$666,$444,$222 ' dataint $00f,$290,$200,$420,$642,$964,$db9,$ffd dataint $f0f,$000,$ff0,$1a9,$166,$444,$222,$033 dataint $2dc,$888,$ccc,$00f,$55f,$f5f,$5ff,$fff
ExploPal: dataint $f0f,$000,$fff,$705,$23b,$a0a,$05a,$aaa dataint $555,$f55,$5f5,$ff5,$55f,$f5f,$5ff,$fff
TankTiles: datafile TankSprite1.BIN,BIN ' datalong $00000001 ' datalong $00000001 ' datalong $00000001 ' datalong $00100007 ' datalong $02100001 ' datalong $02600201 ' datalong $22600621 ' datalong $22600621 ' datalong $22500666 ' datalong $25600646 ' datalong $26617886 ' datalong $26261186 ' datalong $26266282 ' datalong $26266282 ' datalong $26600004 ' datalong $04400000 ' datalong $20000000 ' datalong $20000000 ' datalong $40000000 ' datalong $70000600 ' datalong $20000230 ' datalong $20200230 ' datalong $22600433 ' datalong $32600433 ' datalong $36600533 ' datalong $34600453 ' datalong $68876443 ' datalong $68664343 ' datalong $28644343 ' datalong $28644343 ' datalong $40000443 ' datalong $00000330 ' datalong $03333333 ' datalong $34444453 ' datalong $34333445 ' datalong $00444600 ' datalong $00446700 ' datalong $00666866 ' datalong $00888846 ' datalong $04226633 ' datalong $04226666 ' datalong $00888846 ' datalong $00221866 ' datalong $00661700 ' datalong $00666100 ' datalong $46222665 ' datalong $46666652 ' datalong $02222222 ' datalong $33000000 ' datalong $33330000 ' datalong $44226000 ' datalong $00000000 ' datalong $00000000 ' datalong $66200000 ' datalong $22000000 ' datalong $32227422 ' datalong $11117111 ' datalong $22000000 ' datalong $66200000 ' datalong $00000000 ' datalong $00000000 ' datalong $66611000 ' datalong $22220000 ' datalong $22000000
EnemyTiles: datafile EnemyTiles.BIN,BIN bulletData: datafile Snaryad.BIN,BIN
ExplosionTiles: datafile Explosion.BIN,BIN Screenshots here: TODO: - Add many another types of enemies and make them active.
- Make shoot direction independent on tank moving direction
- Add the secondary weapon - machine gun (its shoot direction must be independent on main cannon shoot direction also)
- Take a new fully original graphics (screen objects size proportions must be same as proportions in the Shock Troopers)
- Create a background
- Create a huge complex levels with a several ways of walkthrough (like a levels in Metal Slug 3)
- List of planned changes will complement and refine in prospect
My TDS.rar (13.66 KB)
|
|