This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - coops
31
« on: September 26, 2016, 03:54:32 pm »
Alright, so I have reworked my Mask routine so it'll rotate or flip masked sprites as needed. Using this and the sprites, I was able to make Link swing his sword! Link has 2 separate animations that play back to back. Just like the standing and walking sprites, there's a routine I have that works through the appropriate offsets for the program to draw the right sprite. When Link is swinging, I also draw the appropriate sword sprite flipped the appropriate way in the appropriate spot...this took a lot of trial and error! lol Now Link swings his sword in all directions. If you hold down the sword button, Link holds still with his sword out...sorry, no spin move yet...if ever I have all the animation elements I need to get Link to slash bushes. That's my next step. In the mean time, watch him hack and slash around!
32
« on: September 26, 2016, 03:43:33 pm »
Wow! those animations look amazing! Great job! I'm not quite understanding the hook shot...it works on the right statue, but on neither statue if you shoot through the left...maybe you're still working on it. Does anybody want to help me with a map in the game, i kinda need a fullscreen map of the overworld, 4lvl gray. If somebody wants to help I can show them the expanded tilemaps and what I am imagining it to be somehow like
I would love to help, but I'm not sure if I'm qualified enough to help. I feel like I'm pretty new to all this. I dont know how grayscale screenshots work...What all are you looking for? Just a huge over world map?
33
« on: September 21, 2016, 06:38:01 pm »
If you want to do it like in zelda games where enemies move around on the map you might want to start i9mplementing your engine being able to handle multiple moving objects at the same time, though. IDK as a practice it might be an idea to make bushes such "movable" objects?
True..I think bushes and rocks are part of the map background for link's awakening. For starting enemies, I'll probably start with some static enemy, and get it to where I can have multiple static enemies on the map. They'll take damage, hurt link, and 'blow up' when their health's gone. Then I'll start working on a way to get them moving...idk. I'll have to think it through. There's a lot to consider. They have coordinates, actions, hitboxes, health, etc... For the animated tiles, I was thinking of storing the addresses in a list, like I have illustraited above. Is that possible/how would I do that?
34
« on: September 21, 2016, 04:52:20 pm »
I'll get back to the animated tiles, cause I feel I can improve it...
Since I want Link to cut a bush, I've been working on the bush mechanics. Afterwards I'll work on sword mechanics...
I added 4 new routines: Replace Tile, Add Animation, Delete Animation, Draw Animation.
When Link cuts a bush, Replace Tile changes the map ID for the bush into a grass tile. When I do that, I add an animation over it to look like the bush disintegrates. I can add multiple animations to the same screen, and even specify what animation I want. It could be a bush being cut, or a spark of a sword, blowing up bomb, etc. I've been testing out these routines, and I think it looks good.
Check out the screen shot. These bushes don't stand a chance to Link's piercing gaze!
35
« on: September 20, 2016, 12:09:41 pm »
I was thinking of this idea. What if I store the address for the beginning of each tile in a list. The tile ID for each tile refers to the location of the address of each tile. That way I can keep the animated tiles together. To animate the tile, I just use the timer as an offset.
Maybe it would make more sense with code. I'm storing the addresses to the beginning of each tile.
//Null Tile [FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF]→"First Element of list" //1-GRASS [0010542800000000000000000000000000105428000000000000000000000000]→"Second Element of list" //2-FLOWER A-D (Animate) [3838C6C6C638380000105428000000003838C6C6C63838000010542800000000]→"Third Element of list" [003844C6C6BA38000010542800000000003844C6C6BA38000010542800000000] [38BAC6C644380000001054280000000038BAC6C6443800000010542800000000] [003844C6C6BA38000010542800000000003844C6C6BA38000010542800000000] //3-ROAD [022202820A02FC00022202820A02FC00022202820A02FC00022202820A02FC00]→"Fourth Element of list"
See how the Flower's animated frames follow right after the first. This way, in my hex maps I can call the address for each tile, but in my animateTile routine I can use the timer as an offset....could I store addresses in a list? cause I don't know how...
36
« on: September 19, 2016, 04:19:15 pm »
Yeah, that's cause of the frame counter. The main loop cycles slower when the background map is moving. When it's not moving, it cycles quicker...eventually I'll put in a delay to make the speed difference match.
37
« on: September 19, 2016, 04:04:21 pm »
They move when Link moves, although, I have it 'animate' (aka, draw the new tile to the back buffer) the tiles that are visible. I might need to make that window a little bigger if Link moves and exposes a new tile...That should be a quick fix though.
38
« on: September 19, 2016, 03:50:10 pm »
That's a great idea! I'll have to get more tiles written first...
39
« on: September 19, 2016, 03:43:47 pm »
To not requiring every tile to be a 4-frame animation you could maybe make that only tiles above a certain ID are animated, below they are static
yeah, I'm already using that for collision...I have it set up where any tile with an ID below 10 is a walkable tile. Above 10 is an unwalkable one...
40
« on: September 19, 2016, 03:33:11 pm »
Thanks Runer112! It was exactly what I needed! I'm still new to the whole Axe language, so a lot of the little details I need to grasp. I've worked on the animated tiles bit. I've made it where a timer increments. Every 50 frames a routine is called to draw over the animated tile spots with the appropriate tile. Some limitations though are all animations must be 4 frames and I have to code in each new animated tile. I could make it more robust, but I think the point is to have something moving on screen so the player knows the calc hasn't frozen I think my next step is I'm going to incorporate bushes. I was going to put them in as a separate object from the map, but now thinking about it, it's probably best to have them part of the tilemap. When a bush is 'cut', I replace the bush tile with a ground tile, and I send an animation of leaves moving over the bush...this will take a while cause I also have to include Link's sword animations and some sort of sword collision...yeah... Nevertheless, Link's got himself a beach house. His flower garden waves around in the breeze, and the ocean waves are moving gently.
41
« on: September 18, 2016, 09:13:26 pm »
Yeah, I've been working on it today, and haven't had much success getting it to work...
Here's the main loop, with Link's stats.
//Link's Character Data: X, Y, Direction, State Data(40,24,1,0,0)→GDB1
Lbl Main Repeat getKey(15) //Check if Arrow buttons or attack buttons are pressed ActionKey() //Draws Link & other masked objects to front buffer DrawObj() DispGraph End Return
Here's the routine that goes through drawing masked sprites; Draw Object. Pic1Link is a pointer to Link's sprite data.
Lbl DrawObj Copy(L₃)
//Calling this should draw Link DrawChar(GDB1,Pic1Link)
//Here's the Old Code that Only Draws Link's Sprite //DrawLnk({GDB1},{1+GDB1},{2+GDB1},{3+GDB1}) Return
Heres a comparison of the old and new routines, and the Masking routine. The DrawChar should work the same as DrawLnk...DrawLnk works just fine.
Lbl DrawChar Mask({r₁},{1+r₁},256*{3+r₁}+({2+r₁}-1*64)+r₂) Return
Lbl DrawLnk Mask(r₁,r₂,256*r₄+(r₃-1*64)+Pic1Link) Return
Lbl Mask Pt-Mask(r₁,r₂,r₃)ʳ Pt-Mask(r₁+8,r₂,r₃+16)ʳ Pt-Mask(r₁+8,r₂+8,r₃+32)ʳ Pt-Mask(r₁,r₂+8,r₃+48)ʳ Return
When I use DrawChar I get a scrambled sprite in a random location...interestingly enough, the collision works despite the sprite not being in the right spot...Any ideas?
42
« on: September 17, 2016, 09:55:38 pm »
The second looks better, it's a little difficult to tell because the first animation has a smaller character than the second...
43
« on: September 16, 2016, 06:51:49 pm »
As to animated tiles, there is no need for an interrupt! The basic idea is that you re-draw the entire tilemap every single frame (that would make the code you wrote for scrolling obsolete (believe me, the calc is powerful enough to easily handle that)) and have a frame counter, and then change for the animated tiles every like 8 frames the pointer of where the sprite data lies, resulting it a different frame being drawn.
Ya, I was thinking of a frame counter too...It should be direct enough of a process, I think. I should have been more specific about the DrawChar subroutine. It should receive 2 pointers: GDB0_____ - points to properties of the character: X, Y, Direction, State Ex: Data(20, 40, 1, 0)->GDB0 Pic0_____ - points to the actual picture of the character Ex: [FFAA01039... ] Calling it would look like this DrawChar(GDB0, Pic0) I think it's probably the ^^r that's in the wrong spot. Or maybe the curly brackets, I'm not sure when they are used...I'll see what I can do!
44
« on: September 16, 2016, 12:41:52 pm »
I've been working on this the last little bit...sorry, no screenshots quite yet. But some quick questions.
I'm wanting to make my drawing routine for Link more general for all 16x16 bit masked objects, like enemies, npc's, etc. It'd be called: DrawChar(GDB0Character,Pic0Pointer). However, it doesnt seem to like me sending pointers to the routine...
DrawChar would look like this:
Lbl DrawChar sub(Maskʳ,{r₁},{1+r₁},256*{3+r₁}+({2+r₁}*64)+r₂) Return
And Mask would look like this:
Lbl Mask Pt-Mask(r₁,r₂,r₃)ʳ Ptq-Mask(r₁+8,r₂,r₃+16)ʳ Pt-Mask(r₁+8,r₂+8,r₃+32)ʳ Pt-Mask(r₁,r₂+8,r₃+48)ʳ Return
I have a feeling that it's confusing the r1, r2, etc between the two routines. Or, maybe I'm not referencing the pointers right, idk. Any thoughts?
Also, any idea on how to do animated tiles? I'm thinking of doing an interrupt routine that first checks for visible animated tiles on screen. If if finds one, it draws over it with the appropriate tile...idk..I've never done interrupts before..
45
« on: September 14, 2016, 09:37:32 pm »
Wow! that looks pretty awesome! I hate digging myself into a hole when coding...It seems like once you code something, you know what you're looking for and you can rewrite a more robust code the second time around. So...I guess that's a plus... Keep up the good work!
|