Jump to content

Lewis2907

Members
  • Content Count

    353
  • Joined

  • Last visited

Everything posted by Lewis2907

  1. Bb Team, Attached is a demo (WIP). Still a ways to go, but the red ghost will kill you. The others won't hurt you for now. Working on reducing all my gosub's. I did the below to reduce all the gosub's. ;*************************************************************** ; ; Allows player0 to move to room 0, 4, 8, 16, 20, 24 ; temp5 = 6 __Room_Shape_0 if room = _Room_0[temp5] then gosub __Room_0_Controls bank2 : goto __Skip_Rooms_2 temp5 = temp5 - 1 if temp5 then __Room_Shape_0 ;*************************************************************** ; ; Data to move rooms shape 0 ; data Dat_Room_0 0, 4, 8, 16, 20, 24 end 20210415_Pacman_Eat_n_Run.bas.bin
  2. Is there a way to reduce the "gosubs" and do a formula similar to what Bogax provided to me a few years ago? I think there is a way to link/combine the code to the exit flags as it shows which room you are in. ;*************************************************************** ; ; Select the correct room and floor based on player0y positions ; if room = 0 then gosub __Room_0_Controls bank2 if room = 4 then gosub __Room_0_Controls bank2 if room = 8 then gosub __Room_0_Controls bank2 if room = 16 then gosub __Room_0_Controls bank2 if room = 20 then gosub __Room_0_Controls bank2 if room = 24 then gosub __Room_0_Controls bank2 if room = 1 then gosub __Room_1_Controls bank2 if room = 5 then gosub __Room_1_Controls bank2 if room = 9 then gosub __Room_1_Controls bank2 if room = 13 then gosub __Room_1_Controls bank2 if room = 17 then gosub __Room_1_Controls bank2 if room = 21 then gosub __Room_1_Controls bank2 if room = 2 then gosub __Room_2_Controls bank3 if room = 6 then gosub __Room_2_Controls bank3 if room = 10 then gosub __Room_2_Controls bank3 if room = 14 then gosub __Room_2_Controls bank3 if room = 18 then gosub __Room_2_Controls bank3 if room = 22 then gosub __Room_2_Controls bank3 if room = 3 then gosub __Room_3_Controls bank3 if room = 7 then gosub __Room_3_Controls bank3 if room = 11 then gosub __Room_3_Controls bank3 if room = 15 then gosub __Room_3_Controls bank3 if room = 19 then gosub __Room_3_Controls bank3 if room = 23 then gosub __Room_3_Controls bank3 if room = 12 then gosub __Room_4_Controls bank4 ;**************************************************************** ; ; Check ; Exit Boundaries ; temp1 codes provided by Bogax. ; temp1 = exit_flags[room] ; Pac_Man_Exit_Top if player0y < 74 then goto __Skip1 temp1 = exit_flags[room] : if temp1{0} then if _P0_L_R = 77 && joy0up then _BitO_P0_Direction = 7 if _BitO_P0_Direction = 7 then _P0_U_D = _P0_U_D + .2 if player0y > 75 then goto __Exit_Return __Skip1 ; Pac_Man_Exit_Bottom if player0y > 18 then goto __Skip2 temp1 = exit_flags[room] : if temp1{1} then if _P0_L_R = 77 && joy0down then _BitO_P0_Direction = 8 if _BitO_P0_Direction = 8 then _P0_U_D = _P0_U_D - .2 if player0y < 18 then goto __Exit_Return __Skip2 ; Pac_Man_Exit_Right if _P0_U_D <> 46 then goto __Exit_Return temp1 = exit_flags[room] : if !temp1{2} then goto __Skip3 temp1 = exit_flags[room] : if temp1{2} then if player0x = 132 && joy0right then _Bit6_Flip_P0{6} = 0 : _BitO_P0_Direction = 5 if _BitO_P0_Direction = 5 then c{3}=1 : _P0_L_R = _P0_L_R + .3 if player0x > 133 then goto __Exit_Return __Skip3 ; Pac_Man_Exit_Left if _P0_U_D <> 46 then goto __Exit_Return temp1 = exit_flags[room] : if !temp1{3} then goto __Exit_Return temp1 = exit_flags[room] : if temp1{3} then if player0x = 20 && joy0left then _Bit6_Flip_P0{6} = 1 : _BitO_P0_Direction = 6 if _BitO_P0_Direction = 6 then c{4}=1 : _P0_L_R = _P0_L_R - .3 __Exit_Return ;**************************************************************** ; ; Exit Boundaries ; Data references each room is based upon bank6 ; %00000101 is room 0 with top and right exits ; %00001100 is room 1 with left and right exits ; %00001000 is room 2 with just a left exit ; %00001111 is room 18 with all four exits ; data exit_flags %00000101, %00001100, %00001000, %00001100, %00001001, %00001001, %00001101, %00001101, %00000101, %00000011, %00000011, %00000011, %00000010, %00000101, %00001011, %00001011, %00001110, %00001100, %00001111, %00000111, %00001100, %00001110, %00001100, %00001000, %00001010 end ******************************************************************************************************** *******************************The below may be a better, but would have to be adapted*************************** ******************************************************************************************************** __PO_D_FL1RS0 if player0x = P0_D_FL1_RS0[temp1] then gosub __Down bank6 temp1 = temp1 - 1 if temp1 then __PO_D_FL1RS0 if player0y = 60 then _Bit0_P0_Floor = 2 : return otherbank if player0y < 74 then return otherbank ;*************************************************************** ; ; Data to move down to Floor 2 ; data Dat_FL1RS0_D 20, 77, 132 end
  3. Here is an update. I have made a lot of progress, but still have a ways to go to get this to work that way I want it to. 1. 25 rooms - Complete. a.) They do look the same and there is no Pfpixel to simulate closing and opeing. b.) There are exits, but all of the don't work on purpose. 2. Better titlescreen - WIP as this is first real attempt with it. a.) Need to color each ghost. Karl G is explain what I can do. Still trying to figure that one out and it will probably be a while. 3. Next WIP to complete. a.) Pause the game with the fire button. b.) Change PacMan color to different color and have the score the same color. c.) Map Screen using switch a / b to make the game harder. d.) Ending of game e.) Fruits and collision. Working, but still testing f.) Text Kernel. I have some stuff working. Things like "Save us Pac" Get Him Inky" to go above the score g) Feedback on the game and game testing. 4. I made several notes especially a PowerPoint for the Titlescreen as that was a challenge. Then the "Brute" force for smooth collisions since the mirrored playfields make it hard to almost impossible from what I can gather. 5. Once this is complete go back and mirror the DPC version to this version. 6. I have a standard Kernel vision, but that is long ways down the road way down the road lol. I doubt if it's even possible for the below based upon what I know. a.) Idea #1 is a 2 player eat-n-run. Player0 is Pac and Player1 could change between the ghost and the other 3 move on their own. b.) Idea #2: Player0 is Pac and Player1 run from the ghost and collect fruits as a challenge. c.) I saw / saved a program where someone was able to change missiles into sprite etc. I think with ASM. Then another program using player1 and repositioning the player all the time d.) Or a scrolling Pac game variation, but i'm a huge Robotech fan and I think I can tackle a game like that now. 20210411_PacMan.bas.bin
  4. Thanks. I will try to work on it. Still experimenting with ideas.
  5. How would I do that with the attached. Basically the line by line way seems easier from what I learned so far as I'm just using the example and changing out the picture data. I'm not sure how to do the line by line. 48x1_1_image.asm
  6. Karl G, I tried it and some other variations. I'm trying to figure our how to make each ghost the correct color. It's been a learning curve with the Titlescreen. I am making some Powerpoint Notes and others stuff to help others who are probably struggling with the Titlescreen Kernel as well. Not sure if it's possible to do what I'm asking. Thanks if you can explain it better or what I should do next.
  7. For the scroller example is it possible to have different colors in the 2084? I'm able to do it with the Robotron. These colors are horizontal. If this possible it would help the game I'm about 80 percent complete with, thanks.
  8. I'm making progress with the Multisprite version and possibly some other games come to mind. With the limitations it's a challenge. I have been playing around with Karl G (https://atariage.com/forums/applications/core/interface/file/attachment.php?id=630314) text kernel and stripped it down for me to learn more and hopefully the other novice programmers like myself. Hopefully I loaded it up correctly online. It took me a few hrs to figure out I needed the asm stuff. in the file. I think when it compiles and is ready as bin it includes the asm? I still can't figure out why I can't move the data for the text to another bank? I just left it there in bank. Just figured textbank = (the actual bank to put data). I'm still learning. I still could never figure out the title screen kernel. That would make this game better. and others better Hopefully there is a video or some easier instructions on how to make it for all three kernels. I think that is next thing I will try to tackle hopefully to help us novice programmers. As for the game, it's about 65% complete, but I'm thinking of a small revamp. It would make it harder to figure out the end of the game if I go that route. I would go back up to 25 rooms, but they would all almost look the same, but you have to figure out the exits and the pattern to make it the last room which would be different to let the player know they made it to the last level. So far in my test of the current 9 rooms it's a challenge, but the above idea would make it harder. Then use switch b for a map to help younger players beat the game. So far just thoughts as I try to cram everything into this game, then move on to making something else in my spare time. 200210404_Multisprite_Text.zip 20200404_Multisprite_Text.bas.bin 20210404_Multisprite_Text.txt
  9. When I paste into Bb the cursor jumps to another part of the program. I recall this happing before once the code gets very long, but I can't recall what was the solution. It makes it hard to code now with all the jumping around. This also happens at times when I het return to start another line. Any thought or fixes for this?
  10. Bb Team, Here is an update. So I went back with Bogax code as it saves space. I did strip it down to understand it more. I have included a small version if someone wants a copy (They are named Bogax) as it's the code that was given to me. Basically I'm doing "brute" force to have smooth collision effects. You can move around the rooms (9 total vice 25 like DPC+). The reason is the brute force so far and probably shrinking the code. Only one room has the ghost move for proof of concept on AI. Below is what I plan to work on next. 1. Move the code around to maximize space. 2. Use 5 digit or center the score. I can't remember how to do it. Looking through my old stuff and online. 3. Random color playfields. I have to reteach myself that one as I kind of forgot how. 5. Work on the AI for the other screens. ///Game Play/// 1. For now you can just move around the screen. Can't open and close like DPC+ because of Pfpixel not working. a.) I have an idea, but I would need more memory to accomplish this 2. Just waiting on feed or ideas to improve this game. 3. Multisprite is tuff to work with as I see there are a lot of limitations. 20210401_Multisprite_Pac_Man.bas 20210401 - Multisprite_Pac_Man.txt 20210401_Multisprite_Pac_Man.bas.bin 20210330_Multisprite_Pac_Man_Bogax.bas.bin 20210330 - Multisprite_Pac_Man_Bogax.txt
  11. Figured out the sound issue. Working on other stuff. Should have a ruff demo next week hopefully.
  12. Bb Team, Update. The version with NC "No Collision" the other you will die and reset the level. All 4 ghost move now. I can't figure out why there is no sound. Probably something easy I guess. It's the same sound from the DPC version. I'm making progress. unless I shring the code. It won't be 25 screens more like 9 based off the calculations I'm coming up with. 20210326_Multisprite_Pac_Man_(NC).bas.bin 20210326_Multisprite_Pac_Man.bas.bin 20210326_Multisprite_Pac_Man_(NC).bas.bin 20210326_Multisprite_Pac_Man.bas.bin 20210326 -Multisprite_Pac_Man.txt
  13. I was able to get the program working. Now I need to start streamlining the code for PacMan and the Red Ghost. The AI works pretty well and the exact coordinates (a pain to figure out) simulate the smooth collision that RT always says looks good in games. I turned off the collision of the moving ghost on purpose the other ghost you can hit and the move (code provided by "Collision function for multi sprites By Xan, February 16" saves a lot of space and time. I think i'm about 30% there with the game as most stuff can sort of port over from the DPC version. Any help or ideas to reduce the code would be great. 20210325 -Multisprite_Pac_Man.txt 20210325_Multisprite_Pac_Man.bas 20210325_Multisprite_Pac_Man.bas.bin
  14. Gemintronic, Ahh I have, but never quite understood it all the way. Makes more sense now. Similar to the below. if joy0up then c{1}=1:c{2}=0:c{3}=0:c{4}=0:c{5}=0:c{6}=0:c{7}=0:c{0}=0
  15. Gemintronic, Thanks. I see some ASM in the code. I probably need to learn that or find a book on it. I will try it out tonight.
  16. Bogax, Thanks for the tips. What I'm trying to do is use (rand&3)+1 to only pick 1-4. Then only select say two numbers then if others number return. Say rand comes back with 2 or 4 then move on. If not return. Hope it makes sense.
  17. I took the advice and got from everyone the program working. Now I'm working on the AI which will be a challenge without pfread, pfpixel etc. like in the standard and DPC Kernels. My plan is exact coordinates then streamline it later (hopefully). What I'm trying to do is only pick certain numbers if at that coordinate. If not the correct one then return. If the number is chosen then move on to move player1 the correct way. Below is a snippet and notes out to the right if anyone has any ideas. Thanks for helping with this as Multisprite is a challenge __AI_Controls_Room_0 ;*************************************************************** ; ; Allows players 1-4 to move down to a level 2 ; Use exact coordinates as they will be on "Auto Pilot" ; 1 = up 2 = down ; 3 = left 4 = right ; if player1x = 28 && player1y = 72 then Red_Ghost = (rand&3)+1 : if Red_Ghost = 1 || 3 then return ; choose 2 or 4 not 1 or 3 if player1x = 85 && player1y = 72 then Red_Ghost = (rand&3)+1 : if Red_Ghost = 1 then return ; works as it chooses left, right or down if player1x = 141 && player1y = 72 then Red_Ghost = (rand&3)+1 : if Red_Ghost = 1 || 4 then return ; choose 2 or 3 not 1 or 4 if Red_Ghost = 1 then _P1_U_D = _P1_U_D + .5 if Red_Ghost = 2 then _P1_U_D = _P1_U_D - .5 if Red_Ghost = 3 then _P1_L_R = _P1_L_R - .5 if Red_Ghost = 4 then _P1_L_R = _P1_L_R + .5 return
  18. Bogax, I will give it a shot in the next few days plus the other variations I still have for code. To be honest I have zero clues on assembly. Not even sure where to start. The only reason I understand Bb is because in the 80s I used Basic as a kid. Thus my style is similar to that and what I can find in the forums.
  19. Thanks. I was thinking too many on gosub. I will probably work on it as tomorrow when I get some free time.
  20. Bb Team, I think my eyes are tired. So I went back to the basics on a lot of this program and I have some variations. For some reason when I start the program to move my ghosts disappear. I'm not sure why. Otherwise I'm using exact coordinates to simulate pfread for Multisprite. Probably could be better. I think it was Bogax who gave me a code using temp and data as a solution, but after a while the program got kind of large. I'm still playing with that code as well. For now can someone figure out why the ghost disappear. I'm thinking too many gosubs or something easy that I'm overlooking, thanks. 20210323_Multisprite_Pac_Man.bas.bin 20210323 -Multisprite_Pac_Man.txt 20210323_Multisprite_Pac_Man.bas
  21. It was a program I was borrowing from everywhere to learn. I may come back to it one day.
  22. I started back about two weeks ago. Trying to port it over to multisprite. I'm making progress. Hopefully it can get something working in a few weeks.
  23. Thanks. I forgot about swapping the players out in DPC. It's been like 1.5 years if not longer since I really had time to play around with Bb and I kinda forgot some stuff. I'm looking at my old stuff and the notes I have in there to help me remember. Thanks again.
  24. I'm going through the example programs I have and searching the forum, but I can't find an example for DPC using player2 playfield detection. I'm okay with the bouncy effect as I know the smooth effect that RT likes to use is difficult and takes time. It's been a while since I have played with Bb and I'm almost relearning some stuff and looking at things differently as well since I took a break from Bb as a hobby. Below is a snippet of the code I'm using. ;*************************************************************** ;*************************************************************** ; ; Player 1 movement and boundaries ; if collision(playfield,player1) then gosub __Knock_Player_Back gosub __Move_Enemy __Knock_Player_Back player1x = player1x - P1_X player1y = player1y - P1_Y return **************************What I would like to use or something simple (DPC+ is not simple lol)******************************** ;*************************************************************** ;*************************************************************** ; ; Player 2 movement and boundaries ; if collision(playfield,player2) then gosub __Knock_Player_Back gosub __Move_Enemy2 __Knock_Player_Back2 player2x = player2x - P2_X player2y = player2y - P2_Y return
  25. Karl G, Thanks. That what I figured. I do okay with programming on a beginner level, but the really nice title screens are tuff. I will probably play with it some and maybe build a PowerPoint like info for work when I pass on information with arrows and where to click and what it does if I can get a simple one going. I'm sure I'm not the only only struggling with the title screens. Thanks again for confirming what I thought about the difficulty.
×
×
  • Create New...