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.
Topics - yunhua98
16
« on: May 08, 2011, 05:42:57 pm »
I got my hands on a CX on Thursday; unfortunately, this is the first time I've had a stable internet connection since then. Once I got it, I opened it ASAP and charged it up and immediately began making my first program - a quadratic solver. The CX yielded some surprising and not-so-surprising information. Anyway, it turns out I get a slidecase after all. - The CX includes a slide case - Battery percentage is measured in increments of 25% - Length and width are very similar to an 84, but about half as wide - Battery life is similar to a phone's (or maybe I use it too much. ) - Shiny - Light - Screen dims after a couple of minutes of no use - 115.2 MB of space left after OS is installed It's pretty much a handheld computer. Turning on seems to take no time at all, but turning off does. As for this, the answer is definitely yes. A video of the CX is available for download here, as requested by Scout. The video was also uploaded on DJ's Youtube account: On a side note, I met program4 this weekend.
17
« on: April 30, 2011, 09:49:30 pm »
Basically, I'm working on a game where you do one thing, after you lose you smoothly transition to a different game. So far, its more of a Biathlon though. Press up and arrow keys to jump, if you fall, it becomes avalanche. I'm going to add a falldown game or helicopter game before it so after you crash, you fall into the avalanche. I plan on adding different speeds soon. (Yes, this has been slowed down to be playable. )
18
« on: April 22, 2011, 10:47:53 am »
http://www.mcleodgaming.com/viewflash.php?id=6&type=gameVery good game. Try it now. O and P to attack, I for shield thingy, U for grabs and stuff. WASD to move. I recommend Ichigo for character, he pwns. Note: it takes a while to load at first, but after you plaay it for the first time, it take about 5 secs. EDIT: oh yeah, Black Mage isn't that bad once you unlock him.
19
« on: March 29, 2011, 05:14:55 pm »
I'm not sure If I should post this here, but I was wondering, How exactly do I use Map Mode? Maybe its just me, but the manual wasn't very clear.
As in, how could I use map mode to do a scrolling tilemap?
20
« on: March 27, 2011, 06:28:22 pm »
Yes, Axe finally updated... This new Axe update brings the new command of getKey r, Compile menu information, and many optimizations and bug fixes. Download it now Here.Original Post: Axe Parser Epsilon 0.5.1
New Features:
- New getkey for grabbing key combinations.
- Compile menu tells you the shell settings to avoid accidental compiles.
- DispGraph is now significantly faster.
- New command to check string equality.
- Lots of new optimizations (Thanks again to Runer112!)
Changed:
- Fixed Axiom system when reading commands with single r modifiers.
- Fixed MemKit axiom bugs.
- Corrected typo in help menu.
- not() can be used in expressions.
- Fixed Ptr->DispGraph bug.
As Quigibo's signature says, Axe Parser v1.0 is 90% completed! Already, it has brought forth many new great games, as seen in the exploding Other Calc Related Projects and Ideas Board. The majority of new projects started on Omnimaga are developed in Axe, and all of them show its abilities. We all hope Quigibo will finish 1.0.0 soon, but hope he won't stop development after version 1.0.0!
21
« on: March 18, 2011, 11:01:51 am »
I saw jimbauwens' BlockBreaker 68K, and I thought it was to awesome not to port to Axe. But I couldn't play the actual game, so I read the readme. I took the basic concept of his game and probably will take some levels, to make an Axe version. Its not really a port, since its missing some of the stuff he has in the 68K version, but I'm also going to add some stuff from Block dude and my own ideas. I've got most of the sprites done, although some aren't shown yet, the basic engine, and some features. I'm still working on Saving and Restarting, and I need more levels. If anyone wants to help make them, feel free. So so far, I have two easy levels, the restart doesn't work yet, Mode to quite right away, clear to get to the "menu". Controls similar to Blockdude, 2nd to break the white blocks. the checkered ones are unbreakable, but their positions aren't fixed. the brick patterned ones are walls that can also float.
22
« on: March 16, 2011, 11:03:32 am »
We need some unity. We should try to have closer ties between Omnimaga and Cemetech. While heartless trolls we can ignore, it's really people you know and like bashing you that ends up doing more damage. And less inter-community fighting isn't the only benefit, if every major TI site worked together, there would be more communication and end products. What's the point of the two biggest TI sites feeling competitive every time something happens? I'm not pointing fingers at anybody; in fact, most people don't feel as if they must out do the other side, but I still believe that Omnimaga and Cemetech should work together on more things, or maybe have a joint contest/IRC channel/etc. This would promote less inter-commmunity fighting, and may resolve current issues and prevent them from happening again. I hope I didn't insult anyone by this, but does anyone else agree?
23
« on: March 11, 2011, 04:18:08 pm »
Note: Anyone can put this tutorial on their website/blog/etc as long as they credit me and link it here. You probably want to include the example programs as well. First, Clarifications: -Can be used for RPGs -Harder to use for platformers, but probably doable -Allows for 255 different types of tiles in one map (more than enough. ) -Easy map switching -Implemented smoothscrolling in example can be taken out. -Easily convertible to Greyscale -This isn't the best code, if you can optimize it go ahead, I just can't explain it well if its too optimized. -I left out a couple of "0C"s in the data, I could leave out more, I know. -All example code is from the example program unless said otherwise. Now, for the Tutorial: Store your sprite data:I find it easiest to store the Character sprites first. Point the first one to Pic1 and let the rest be relative to that pointer. After that, point the "ground tile" to Pic0. This tile will be represented by "00" later in the data. This tile is also the one you can always walk on. The other tiles will also be relative to this pointer, increasing by 8 to get to the next tile. This is more organized if you comment above each piece of data, saying what it is and what number it is. Remember to count in Hex here. :.CHARACTER :.HEADFRONT :[7E7E99A5A5423C42]→Pic1 :.BODYFRONT :[81A5A5A5425A6666] :[81A5A5A5425A6760] :[81A5A5A5425AE606] : :.HEADRIGHT :[3C7EF1C585423C42] :.BODYRIGHT :[4A4A45452624241C] :[4A4A45452654B2EC] :[4A4A45252624241C] : :.HEADLEFT :[3C7E8FA3A1423C42] :.BODYLEFT :[5252A2A264242438] :[5252A2A2642C4A76] :[5252A2A464242438] : :.HEADBACK :[7E7EB9B191423C42] :.BODYBACK :[81A5A5A5425A6666] :[81A5A5A5425A6760] :[81A5A5A5425AE606] : : :.STORE YOUR SPRITE DATA FIRST, I'M ASSUMMING YOU WANT MONOCHROME SPRITES :.EXAMPLE SPRITES :.GROUND TILE,0 THIS IS THE NUMBER THAT WILL REPRESENT THE TILE :[00A04000000A0400]→Pic0 : :.TREE,1 :[186689A14A3C2442] : :.HOUSE,2,3,4,5,6,7,8,9,A SOME OBJECTS NEED MORE THAN ONE TILE, AND THE A IS 10 IN BASE 16 :[03060A1A2A6AAAAA] :[FF00000000000000] :[C060505854565555] :[ABACABB4A8D2A5C2] :[FF00FF000000007E] :[D535D52D154BA543] :[407F407F407F403F] :[8181A1A1818181FF] :[02FE02FE02FE02FC] : :.PATH,B :[8181818181818181] : :.BLACK BOUDARIES,C :[FFFFFFFFFFFFFFFF]
Next, keeping the number for each tile in mind, write them out and lay it out like a map, as in: :.MAP DATA, REMBER THOSE NUMBERS? ADD 0's RIGHT BEFORE THEM, AND STORE THEM TO A POINTER :[0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C]→GDB1 :[0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C] :[0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C] :[0C0C0C0C010101010101010101010101010101010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000203040000000000000000010C0C0C0C] :[0C0C0C0C010000000506070000000000000000010C0C0C0C] :[0C0C0C0C0100000008090A0000000000000000010C0C0C0C] :[0C0C0C0C01000000000B000000000000000000010C0C0C0C] :[0C0C0C0C01000000000B000000000000000000010C0C0C0C] :[0C0C0C0C01000000000B000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010000000000000000000000000000010C0C0C0C] :[0C0C0C0C010101010101010101010101010101010C0C0C0C] :[0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C] :[0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C]
Looking back, remember the "0C"s are boundaries, "01"s are trees, and "00"s are ground tile, etc. Too keep it organized, I suggest entering the data for each row on a separate line. Point the first one to GDB1, and let the rest be relative. When you enter another map, point it to a different GDB, and when you switch maps, Copy a map to a temp pointer, such as GDB0, and just always use GDB0 when mapping. <hr> Movement engine:Keep in mind that this engine is written such that your character stays in the same location on screen, and the map moves around him. Zero the pointers you need to be 0 first :.P AND Q ARE THE LOCATION OR THE TOP CORNER OF THE MAP DATA :0→P→Q→V→H→I→J→θ→{r1}
The {r1} is the one in VARS>Y-VARS>Polar>r 1, its the variable telling how much the character pointer should add to to display a sprite facing the direction your moving. The P and Q are the "psuedo-coordinates" of the top corner of the screen on the map data. We're basically pretending its an array. So P=0 and Q=0 would correspond to the tile in the top left corner being a "0C" tile, or, a black one. And the rest of the tiles shown on the screen will be relative to that. Just look at the "array", and go down Q rows and go right P bytes, a byte being two digits. V, H, I, and J are just variable to make sure each time you press a arrow key, you only go to a direction 8 pixels at a time, but with smooth scrolling. The smooth scrolling will be better explained later on. :Repeat getKey(15) : :Z→Y : :Q*24+P+126→Z : :.P+(getKey(3) and (({Z+1+GDB1}=0) or ({Z+1+GDB1}=11)))-(getKey(2) and (({Z-1+GDB1}=0) or ({Z-1+GDB1}=11)))→P : :.Q*24+P+101→Z :.Q+(getKey(1) and (({Z+24+GDB1}=0) or ({Z+24+GDB1}=11)))-(getKey(4) and (({Z-24+GDB1}=0) or ({Z-24+GDB1}=11)))→Q : :If getKey(3) and (I=0) and (J=0) and (({Z+1+GDB1}=0) or ({Z+1+GDB1}=11)) :1→I :32→{r1} :End :If getKey(2) and (I=0) and (J=0) and (({Z-1+GDB1}=0) or ({Z-1+GDB1}=11)) :0-1→I :64→{r1} :End :If getKey(1) and (I=0) and (J=0) and (({Z+24+GDB1}=0) or ({Z+24+GDB1}=11)) :1→J :0→{r1} :End :If getKey(4) and (I=0) and (J=0) and (({Z-24+GDB1}=0) or ({Z-24+GDB1}=11)) :0-1→J :96→{r1} :End : :If getKey(1) or (getKey(2)) or (getKey(3)) or (getKey(4) :θ+1→θ :Else :0→θ :End : :H+I+I→H :V+J+J→V : :If H-8=0 or (H+8=0 :P+I→P :0→H→I :End :If V-8=0 or (V+8=0 :Q+J→Q :0→V→J :End : :.If Y≠Z :sub(MAP) :.End : :Pt-Off(40,32,Pic1+8+(θ/4^2*8+8*(θ≠0))+{r1} :Pt-Off(40,24,Pic1+{r1} : :DispGraph : :End
The parts that are commented out are for scrolling by 8 pixels at a time (i.e. not smooth scrolling) Uncomment those and comment/delete the If clauses with getkey(1-4) in them. (but not the one that involves storing things into theta) Smooth Scrolling: H and V are constantly being incremented by I and J respectively. When you aren't moving, I and J are 0, when you move, I and J change to (-)1 depending where you're going. When H or V equal 8, they get reset to 0 and 8 is added/subtracted to/from P or Q, depending on whether you went Horizontally or Vertically. Collision detection: Collision detection is a simple matter of finding out where you are on our "array" and checking whats above, below, and beside you. to find the number of bytes you are away from GDB1, you would take Q, multiply it by you "array's" width, add P, and add 101, in this case, since that gets you from the top corner of the screen to the place where your body is. Now, just check if {Z (the variable with your distance from GDB1) plus GDB1 +/- 1/[width of your array]} To check to your left/right, +/- 1, to check above and below, +/- 24, in this case, that being the width of our "array." <hr> Map DrawingYou may have noticed the "sub(MAP)" in the above code, calling the subroutine "MAP." The map routine is very simple. Use the vars P and Q to find the distance from GDB1 to the top left corner of your screen, as shown in below source. And then use two for loops to increment by 1 to find the next tile, until you reach 12 tiles, and then skip to the next line, and display 12 tiles, and display 8 rows of twelve tiles. :Lbl MAP : :Q*24+P→Z : :ClrDraw :For(B,0,9 :For(A,0,13 :Pt-On(A*8-8-H,B*8-8-V,{B*24+A+Z+GDB1}*8+Pic0 :End :End
Attached below is a screenie of the Example program and the source/executable
24
« on: January 29, 2011, 03:50:44 pm »
Check out the screenie, how is this guest (necro)posting?
25
« on: January 29, 2011, 03:17:22 pm »
I'm starting a new Bomberman game since the old one is pretty much finished and has a lot of messy code that I started a long time ago, when I wasn't as good at Axe. The new one is 3lvl greyscale, has 16x16 sprites, and features scrolling. The explosion sprites aren't done yet, so I'm using black sprites as placeholders, you can't die yet, and there is no AI, but I'll get that added in due time, and I'll get sprites facing the other directions done soon too. For now, here's a screenie.
26
« on: January 27, 2011, 05:31:01 pm »
I really need someone's help here. Could someone with lots of experience in ASM edit the 2.53MP os so that the Reset All Memory function isn't in the menu? I could always resend the original OS if I need to reset all. Because theres a couple of people at my school who keep trying to reset my memory, and some of them are smart enough to get rid of the mem menu block from Mirage and Omnicalc. All help will be appreciated.
27
« on: January 22, 2011, 04:23:04 pm »
Beat it. I made it with GM in about an hour today cause I was so bored. Also, does anyone have a good screen recording program? And if you play it, and the number of extra lives seems a bit excessive to you, its not. Arrow keys to move, WASD to shoot in respective directions, and space to leave a mine. Satellites act as portals, yeah... I haven't beat it yet, and I guarantee you will lose The Game. I don't have a game ending sequence thing cause its impossible. EDIT: I beat it! Final score was 1004630 lol EDIT2: nvm, I beat the buggy version where the last level was too easy...
28
« on: January 21, 2011, 10:19:16 am »
I'm starting on my battle engine now, but I just can't draw a creative enemy sprite. I need a reference to draw anything lol. And since these sprites aren't going to spoil the plot, I'm not going to ask people to do them via PM. anyway, for now, I just need a 3 lvl greyscale wolf sprite, preferably in a slightly menacing pose. Thanks in Advance!
30
« on: January 12, 2011, 11:38:32 pm »
I need 2 or 3 people who don't mind some major plot elements in my rpg spoiled and someone who is good at making human sprites that are large and detailed. Just tell me here and ill PM you with more details. For the plot guys, ill basically tell you what I'm planning and see if its good and take suggestions.
|