Jump to content

saboteur

Members
  • Content Count

    127
  • Joined

  • Last visited

Community Reputation

102 Excellent

About saboteur

  • Rank
    Chopper Commander
  1. Would this mean that an author could request the unique id from the purchaser and then modify their code accordingly, and provide the customer with either an electronic download or an image on a sd card that will only work on that specific SD cartridge ? That would seem pretty reasonable to me.
  2. I've never suggested a game for conversion because i'm never sure how it would translate to the jags controller and I would think that's quite a headache for CJ. However now that you've opened pandoras box, I always loved microposes Gunship and didn't they do Grand Prix ? But..... 'Rocket Ranger', 'The 3 Stooges', 'It Came From The Desert', Strider, Hunter, Carrier Command and 'Where Time Stood Still' before the end of the day would be great ( And don't forget we've unleashed the pain stick now )
  3. Holy Crap, what a gaff. But it gets worse, how come I even have to touch the jagpad at all ? why the f*** doesn't it just read my mind and automatcally load up an play the game i'm thinking about. Saint, I can't believe you didn't consider this, consequently oxfordshire is going to annexe gloucestershire and impose daily administration of the pain stick - and it's all your fault.
  4. Thanks for taking the time CJ A perfect explanation and gives me a few pointers cos i was scratching my head with the pixel perfect collision detection and raptors built in hit boxes.
  5. May I ask a technical question ? I assume the collision detection for the foreground is all handled by a single call to the raptor api and the foreground image is X x Y pixels with the non collission area being a certain colour that is then treated as transparrent. How do you assign the transparrent colour ? or is it always black for example. ? Looking good though.
  6. Whoa now hold on old son. England is more than the UK, official policy is to make the work England and has been for at least 500 years, we're just having a period of r & r at the mo for tea and biscuits. Next thing i know you'll be sending men in white over here trying to retain the ashes. bloody cheek. Now get back in your darkened cave and crack on with the requested numberwang.
  7. I see what you did there, and it's rookie jag game development 101. See you've missed explaining all the complicated maths and feature planning and such and gone straight to showing a playable demo. No no no, it just won't do All that aside, I used to love Thrust and Thrust II on the good old speccy, but I seem to remember that involved picking up and towing objects as well, which was very hard and extremely satisfying when you completed a mission. And i know what you mean about this type game being a time waster, defying inertia and gravity just keeps you coming back for more. My hats off to you sirs.
  8. Thanks for the reply. No need to apologise - your helping me, not the other way around Anyhoo - nearly there, I had already changed the rapinit as you sugested but it still wouldn't work. However, it got me thinking so i checked the blank.bmp and that wasn't the same size. Also the drawtile procedure loop is wrong I think. Currently it's for i=0 to map_height-1 I think you meant for i=0 to tile_height-1 Now it works but the bottom row is not on the screen - so a bit of fettling and I think i'll be there. Thanks for all the help - it really is appreciated.
  9. this is what i get using 8 pixels height
  10. The source image is 48x16px - so made up of 3 16x16px tiles As I said when I set the tile height to 8px it all works fine except each tile is displayed half height - as I would expect. However no map is displayed when setting tile height to 16px ' ' Your code goes here ' Have fun! ' rlist=(RAPTOR_LIST *)strptr(RAPTOR_sprite_table) basic_r_indx=0 basic_r_size=0 'RLOCATE 0,202 'RPRINT " RAPTOR BASIC+ - REBOOT " 'basic_r_size=0 'basic_r_indx=0 'RLOCATE 0,218 'RPRINT " Derived from BCX BASIC v6 " DIM ID_player% DIM GVAR_player_gfx_loc% DIM GVAR_player_gfx_size% ID_player = 2 ' RAPTOR Object number for player 'GVAR_player_gfx_loc = RGETOBJ(ID_player, R_sprite_gfxbase) 'GVAR_player_gfx_size = RGETOBJ(ID_player, R_sprite_framesz) set maps[15][20] as short '01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 {00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00}, ' screen 1 row 01 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 02 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 03 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 04 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 05 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 06 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 07 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 08 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 09 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 10 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 11 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 12 {00,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,00}, ' screen 1 row 13 {00,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,01,02,00}, ' screen 1 row 14 {00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00} ' screen 1 row 15 end set loadclut(strptr(tiles_clut),0,16) dim x as short dim y as short dim c as short dim tilex as short dim tiley as short dim map as short dim i as int DIM pi!: pi=3.1415926535897932384626433832795 dim ph! ' The screen to draw the map's width in bytes. ' Think of this as <width in pixels>*<bits per pixel>/8 const dest_screen_width_in_bytes=160 ' Our tile's height in pixels const tile_height=16 ' Our tile's width in bytes. ' Think of this as <width in pixels>*<bits per pixel>/8 const tile_width_in_bytes=8 ' Number of available maps. const no_maps=1 ' The screen to read the tile's width in bytes. ' Think of this as <width in pixels>*<bits per pixel>/8 const src_screen_width_in_bytes=24 ' Map width inside the map array const map_width=20 ' Map height inside the map array const map_height=15 map=0 ' Draw map for y=0 to map_height-1 for x=0 to map_width-1 c=maps[map*map_height+y][x] tilex=(c % map_width) tiley=(c/map_width) drawtile(x,y) next x next y rlist[1].x=19*65536 vsync do call Player_Update_Position vsync loop sub drawtile(x as SHORT, y as SHORT) for i=0 to map_height-1 ' Our tiles are 16x16 big in 4bpp mode, which means they are 8 bytes wide in RAM. Hence we need 2 LPOKEs per line. lpoke strptr(scrbuf)+y*(dest_screen_width_in_bytes*tile_height)+x*tile_width_in_bytes+i*dest_screen_width_in_bytes,lpeek(strptr(tiles)+tilex*tile_width_in_bytes+tiley*(src_screen_width_in_bytes*tile_height)+i*src_screen_width_in_bytes) lpoke strptr(scrbuf)+y*(dest_screen_width_in_bytes*tile_height)+x*tile_width_in_bytes+i*dest_screen_width_in_bytes+4,lpeek(strptr(tiles)+tilex*tile_width_in_bytes+tiley*(src_screen_width_in_bytes*tile_height)+i*src_screen_width_in_bytes+4) next i end sub could it be anything to do with rapinit? cheers
  11. OK still no joy. So my source image is 48x16px = 24bytes ( 3 tiles of 16x16 ) if i set the tile height at 8px i get a map displayed but obviously all tile heights are half height. If I change the tile height to 16px it all goes horibly wrong and crashes Now as I undertsand it I shouldn't neet to change the POKES cos i'm still only doing 16px in 2 4 byte lumps. Any ideas ?
  12. Thanks for the info GGN - the i loop was what was throwing me out i think. I'll let you know how i get on. cheers
  13. Finally managed to get some time this weekend and went back through my manicminer experiments and started plowing back through it. Whilst I was doing this i noticed the drawmap.bas example in projects and got waylaid playing with that. I have got it running as expected when using 4bpp tiles of 8x8 no problem. However I cannot get it to work when using 16x16 tiles. for map=0 to no_maps-1 ' Draw map for y=0 to map_height-1 for x=0 to map_width-1 c=maps[map*map_height+y][x] tilex=(c % map_width) tiley=(c/map_width) for i=0 to 7 ' Our tiles are 16x8 big in 4bpp mode, which means they are 8 bytes wide in RAM. Hence we need 2 LPOKEs per line. lpoke strptr(scrbuf)+y*(dest_screen_width_in_bytes*tile_height)+x*tile_width_in_bytes+i*dest_screen_width_in_bytes,lpeek(strptr(tiles)+tilex*tile_width_in_bytes+tiley*(src_screen_width_in_bytes*tile_height)+i*src_screen_width_in_bytes) lpoke strptr(scrbuf)+y*(dest_screen_width_in_bytes*tile_height)+x*tile_width_in_bytes+i*dest_screen_width_in_bytes+4,lpeek(strptr(tiles)+tilex*tile_width_in_bytes+tiley*(src_screen_width_in_bytes*tile_height)+i*src_screen_width_in_bytes+4) next i next x next y 'Bring the map to screen for ph=0 to pi/2 step pi/90/2 rlist[1].x=(352-sin(ph)*336)*65536 vsync next i Now i notice there is a loop for i=0 to 7 and I assumed this was for buidling the 8 rows of the original 16x8 or my 8x8 tiles. But if I change the tile height to 16 and set this loop to be 0 to 15 it just hangs. so am i misunderstaning this. On the plus side I have tile collision working based on the 8x8 tiles it's just my player sprite is 16x16 so it makes sense to draw the map based on 16x 16 tiles as well. cheers
  14. The mechanics of coding a platform game are actualy pretty simple for most coding languages. Display screen -> player moves -> has player hit platform/enemy -> repeat But as Lost Dragon so ably stated above, game design, level design, graphics and sound are the real time consumers. For me game / level design are the hardest to get right. You can have the prettiest graphics and great sounds, but if ain't fun to play, then whats the point. Some of the best games i've ever played have simple audio and visuals but the gameplay is second to none and always keeps you wanting ' just one more go'
  15. well now.... it's got at least 5 chips to go with it
×
×
  • Create New...