Jump to content

Descolado

Members
  • Posts

    88
  • Joined

  • Last visited

About Descolado

  • Birthday 04/24/1972

Profile Information

  • Gender
    Male
  • Location
    Curitiba - Parana - Brazil

Recent Profile Visitors

3,076 profile views

Descolado's Achievements

Star Raider

Star Raider (3/9)

21

Reputation

  1. Thanks, Oscar. I am using his first book to continue the programming process on Intellivision, but I am very rusty, I have not been working with code for 3 years, it is helping a lot. The second book is already in my plans.
  2. I'm trying to slow down a MOB at certain points in its movement (when it reaches the top or the bottom of the screen). I'm using the code below and it works for a few seconds. When FRAME reaches a value of 1500 the Enemy MOB simply STOPS on the screen. Does anyone know why this happens? I remember reading here on the forum once (I didn't find it anymore) something about "moving half a pixel". I've seen in some posts / examples something like "Speed = $ 20" but I don't understand how it works. Does anyone have another suggestion to change the speed of this enemy (making it slower at certain times)? DIM speedX1: speedX1 = 1 DIM speedY1: speedY1 = 1 DIM delta: delta = 4 Enemy: PROCEDURE SPRITE 2, X1 + HIT + VISIBLE, Y1 + ZOOMY2, CS_RED + SPR02 print at screenpos(5,5), <5>frame IF (FRAME % delta) THEN X1 = X1 + speedX1 Y1 = Y1 + speedY1 END IF IF X1 >= 160 THEN speedX1 = -1 IF X1 <= 8 THEN speedX1 = 1 IF Y1 >= 80 THEN speedY1 = -1: changed = 1 IF Y1 <= 8 THEN speedY1 = 1 : changed = 0 IF changed = 0 THEN delta = 4 ELSE delta = 2 END
  3. Oh God, tell me there will be ROM to this game, because send the cartridge to my country (Brazil) is very (very, very, very) expensive.
  4. Thanks for help, guys. I'm learning to program at Intybasic so sorry, I'm a noob. I'm using TABLES to save X and Y sprites (this project is teaching me a lot of cool things about Intybasic) but your knowledge is a little beyond my understanding. I understand what I need to do, I just need some tips on HOW to do this. Question: How do I verify each BIT position in a 8-bit variable? Example: DIM MyScreen5: MyScreen5 = 255 'REM 1111 1111 When my MOB touch one KEY, I will change variable: MyScreen5 = 1111 1110 'REM Bit[7] OFF If my MOB open a DOOR in screen5, I will change to: MyScreen5 = 1111 1010 'REM BIT[5] OFF Then, positions [5] and [7] are OFF. How I check this positions? I can't use FOR I = 0 TO 7 because "MyScreen5" is not an ARRAY. Thanks!
  5. Hmmm... interesting suggestions! I was thinking. Many cards in my screen are statics, how doors, keys and others objects. When my MOB touch it I "delete" the card (PRINT AT X_Card, 0). When my player touch a CARD I can take only two informations about it: SCREEN and COORDENATES. Before create a screen, I need save this two informations in someplace. I was thinking save in array: DIM Screen_5(3) Screen_5(0) = 181 'left door X position Screen_5(1) = 186 'key X position Screen_5(2) = 197 'right X door position Then, if my player touch the KEY card, I will put "zero" in index 1 (Screen_5(1) = 0). If my player go back to the screen 5, I will read all index of Screen_5: If CurrentScreen = 5 THEN If Screen_5(0) > 0 THEN PRINT AT Screen_5(0), DOOR_LEFT If Screen_5(1) > 0 THEN PRINT AT Screen_5(1), KEY If Screen_5(2) > 0 THEN PRINT AT Screen_5(2), DOOR_RIGHT END IF But if I use SCREEN_0(X), SCREEN_1(X)... SCREEN_50(X) etc, I don't will have enough 8bits variables to save ALL cards because each screen can have 3 to 10 objects that my MOB can "hit" and I have only 179 8-bit variables available. I can use JLP but I do not like this idea. Thanks by suggestions, I'll look for more information in the forum about it.
  6. Hi, Sorry my english. I'm working in a game that use several screens. My player can move between screens, by example, he can move from Screen 1 to Screen 2 and can go back to Screen 1. After draw the screen I'm putting objects using PRINT AT (my MOB not use "COL" to colision detection, I'm using other system). In Screen 1 my player can open a door or touch a obstacle and I replace the card) and move to Screen 2. If my player go back to Screen 1 I need "remember" what Card he touched and not to put it back on the screen. When my player touch a CARD I need "save" this CARD in any place in memory but I don't know how because CARDs can't be "marked". I can use a "screen memory": Screen_0(X), Screen_1(X), etc, where "X" is the number of sprites in my screen that my MOB can "hit" but I think it's going to be a lot of work because I have more than 50 screens.
  7. If I will call ONE TABLE (one screen) per time, why I need save space converting WORD to BYTE? (I don't know how do it). I can have 100 tables in my code, if I will call this tables using GOSUB or SCREEN I shouldn't need save space because I don't will use all screen in same time. I replicated 100 TABLES inside my code to simulate the 100 screens from my game. The Intybasic compiles but the JZINTV show a black screen. I don't understand. Is Intybasic loading to memory all tables in run-time?
  8. Sorry but I didn't understood exactly what you mean. When you say "word" you are talking about "variable type"? I know that when I use "A = 0" is diferent than "#A = 0" because the char "#" means 16 bits (can store a big value). But I think that's not what you meant.
  9. Thanks Lathe! I will look. I have one question to Nanochess: How many screens I can put in my BAS file using the Monkey Moon system? My game will have a lot of screens. PITFALL had 255 screens, can I put 50 or 100 screens in my code or I need create other file and use "include"?
  10. Oh man, I have A LOT of questions [rsrsrsr], but at moment all is working (thanks to Nanochess and your great book). I'm using this game to LEARN programming in INTYBASIC. After follow the Atariage forum for several years I create courage to start my first game. I spent weeks studying the STIC (registers X, Y and A). I don't understand many things but I learned how it work, using binary codes to change "flags" and change the sprites behavior, positioning cards in GRAM or using GROM. It's fun. I created a (very) complex colision detection system (the game require), I don't make idea if is the best way but all is working fine at moment. My PLAYER can detect colision agains a lot of static cards with no use COL0 and HITSPRITE, can divert, get around, grab and others things. Now, I will drawing the screens and test my player against other cards. Thanks for his feedback, is very important have support from the masters of assembler (man, how can you understand all this? [rsrsrss])
  11. DZ, I'm BRAZILIAN. I don't speak spanish. Google translate help me to write in english. Nano, thanks. Your tip worked fine (for while!!!). I use this routine to change sprites color: FOR I=0 TO 239 #BlackCard= PEEK ($200+I) 'get the backtab card information IF #BlackCard = PI1 THEN #BlackCard = #BlackCard/8 'delete the first 3 bits #BlackCard= #BlackCard*8 'add the 3 zero to the first 3 bits POKE $200 + I,BlackCard 'write the result back to the backtab END IF NEXT I In my COLISION procedure I used: IF (#CS5 = PI1) OR (#CS6 = PI1) OR (#CS5 = #BlackCard) OR (#CS6 = #BlackCard) THEN Terrain = 1 Nano, I'm using your (amazing) INTELLIVISION PROGRAMMING BOOK to create a platform Game. I loved the MONKEY MOON program example and I'm using this algorithm. I will post a GIF to show as the program soon (surprise! rsrsrsrs).
  12. Hi, sorry my english. I'm working in a homebrew and I have some questions. I need change the sprite color ("PI" sprite only) from RED to BLACK. My program have a COLISION DETECTION algorith (COLISION procedure). I found some routines in this forum to change background color (CHANGECOLORTERRAIN procedure). It's work fine, but... If I run CHANGECOLORTERRAIN procedure, my MOB can't detect PI sprite and will fall. I believe that its happen because when BACKTAB(I) change color sprite to black, it "replace" card values to other value and my "PI" cards desapear, right? INCLUDE CONSTANTS.BAS 'MOB CONST M1 = $0807 + 0 * 8 'MOB stopped 'OBJETOS CONST OO = 0 CONST PI = $0802 + 1 * 8 'Terrain CONST OB = $0807 + 2 * 8 'Objects CLS MODE 0,0,0,0,0 WAIT DEFINE 0,1, player WAIT DEFINE 1,2, Objetos X = 75 Y = 72 SCREEN Tela1 LOOP: SaveY = Y WAIT SPRITE 0, X + HIT + VISIBLE, Y + ZOOMY2, M1 GOSUB Colision IF Terrain = 0 THEN Y = Y + 1 ELSE Y = SaveY IF CONT1.right THEN X = X + 1 IF CONT1.LEFT THEN X = X - 1 'REM GOSUB ChangeColorTerrain GOTO LOOP COLISION: Procedure 'Low Right Botton #LRB = (X-1)/8 + (Y)/8 * 20 'Low Left Botton #LLB = (X-8)/8 + (Y)/8 * 20 #CS5 = PEEK($0200 + #LRB) #CS6 = PEEK($0200 + #LLB) 'If the foots touch the Terrain, the fall stop IF (#CS5 = PI) OR (#CS6 = PI) THEN Terrain = 1 ELSE Terrain = 0 END ChangeColorTerrain: PROCEDURE FOR I = 0 TO 239 #MCard = PEEK($200 + I) IF #Mcard = PI THEN #BACKTAB(I)=(#BACKTAB(I) AND $07f8) + $3e00 END IF NEXT I END Tela1: DATA PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI DATA PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI DATA PI,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,PI DATA PI,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,PI DATA PI,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,PI DATA PI,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,PI DATA PI,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OB,OO,PI DATA PI,OO,OO,OB,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OB,OO,OO,PI DATA PI,OO,OB,OB,OB,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OB,OO,OO,OO,PI DATA PI,PI,PI,PI,PI,OO,OO,PI,PI,PI,PI,PI,PI,OO,OO,PI,PI,PI,PI,PI DATA PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI DATA PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI,PI player: BITMAP "...##..." BITMAP "...#...." BITMAP ".#####.." BITMAP "...#...." BITMAP "...#...." BITMAP "...###.." BITMAP "..#...#." BITMAP ".#....#." Objetos: BITMAP "########" BITMAP "##....##" BITMAP "#.#..#.#" BITMAP "#..##..#" BITMAP "#..##..#" BITMAP "#.#..#.#" BITMAP "##....##" BITMAP "########" BITMAP "########" BITMAP "##....##" BITMAP "#......#" BITMAP "#......#" BITMAP "#......#" BITMAP "#......#" BITMAP "##....##" BITMAP "########" I know that I can create a new "PI" sprite using BLACKCOLOR and use the two sprites in my Colision procedure: CONST PB = $0800 + 2 * 8 'Terrain black IF (#CS5 = PI) OR (#CS6 = PI) OR (#CS5 = PB) OR (#CS6 =PB) THEN Terrain = 1 ELSE Terrain = 0 But I have a LOT of sprites that I need change color to BLACK. Sorry if I was not very clear. DATA command only use CONSTANTS? Can I use DATA with VARIABLES? How change the color from "PI" sprite with no change my MOB behavior?
  13. My contribution for this beautiful day. I made a video of this match but it got very big (2 gbytes in AVI) and, for while, I don't have much time to convert to other file format.
×
×
  • Create New...