Well hey if you're accepting additional coders I think you two sound like a fun couple to work with! I took the plunge and went back to school this year, nixing my former abundance of free time, but I do have a 3-week Christmas break starting right about... now!by calvinss4 - Ideas, requests
Your code is pretty hard to read; I would calculate the bullet's distance from the planet once and store it in variable. You have: accelAng = M_PI+asin(...) The input to asin must be a floating point value in the interval [-1,+1]. Try validating your input.by calvinss4 - Coding
Quotecalvinss4 next see if it works with two objects: ftImage test1(640,480); test1.setFont(hyperspd_ttf, hyperspd_ttf_size); ftImage test2(640,480); test2.setFont(hyperspd_ttf, hyperspd_ttf_size); Quoteg_man Ok I did that and it worked. Two different ftImages worked fine. We seem to be going in circles here. So it works for 2 objects, but not 5? - Try it again with just two objectby calvinss4 - Coding
Hey g_man, it would really help if you uploaded your code somewhere so I can see the whole thing in context; the smallest discrepancy can make the biggest difference. For example, you typed: int totalLevels = 5; char buffer; that's a big difference from this: const int totalLevels = 5; char buffer; The former isn't even allowed technically, but is supported in newer standardby calvinss4 - Coding
Edit your post and put spaces around the < signs so that the wiki can display your code properly.by calvinss4 - Coding
Quoteg_man What this should do is create an array of pointers to ftImages right? Then it should assign the first pointer to a new ftImage. That is correct. This is bad news bro, looks like we're dealing with heap corruption. This could be caused by your code somewhere else, or it could be caused by a library you're using, especially if that library uses threads (the exact same thiby calvinss4 - Coding
We were operating under the assumption that levelNumTxt.setFont(hyperspd_ttf, hyperspd_ttf_size); stopped working AFTER you started using dynamic memory allocation. It appears we have to reevaluate that predicate. Was this ever working in the first place? Does it work for one object? ftImage test1(640,480); test1.setFont(hyperspd_ttf, hyperspd_ttf_size); Since you don't have acby calvinss4 - Coding
You wrote: ftImage **levelNumTxt = (ftImage**) malloc(12*sizeof(ftImage)); Unfortunately this compiles because malloc returns (void *) which is castable to (ftImage **), but you actually want to allocate space for 12 pointers: ftImage **levelNumTxt = (ftImage**) malloc(12*sizeof(ftImage*)); Was there a copy-paste error after that? Looks like it. Make sure you actually construct the objeby calvinss4 - Coding
You can solve anything with enough levels of indirection :)by calvinss4 - Coding
Do you have access to the ftImage class? If you do, post the copy constructor; I bet it does a shallow copy. If you can't modify the class then you may have no choice but to use placement new.by calvinss4 - Coding
Oh C++ is so much fun!!! levelNumTxt = ftImage(640,480); As Daid said, the above will construct a temporary ftImage object, then call ftImage's assignment operator to copy the temporary into levelNumTxt. If you don't write an assignment operator for your class, then the compiler generates one for you; this automatically generated assignment operator does an exact bitwise copy,by calvinss4 - Coding
Well, you're allocating memory for 12 ftImage's, but writing into 20 of them, so you're stomping memory... bad, bad, bad! You should store the number of ftImage's into a variable and then reference that variable (don't use magic numbers); if the number of ftImage's is a constant, then use static memory allocation.by calvinss4 - Coding
Well there you have it, source code is released. See the project page. Adding new powerups is pretty easy. I'd be super stoked if even one person adds a powerup. Maybe if there are some nice contributions, TetriCycle could get nominated for featured homebrew?by calvinss4 - Homebrew Applications
scanff, does that mean you work in the game industry? What booth were you at? As a homebrewer, of course I'm a fan of indie games, so I'd recommend checking out the following: 1) The PAX 10 (10 best indie games as chosen by PAX). Some of these games are even free (like the DigiPen student projects). 2) In(die)credible! The best new indie games you haven’t played. 3) Monaby calvinss4 - Offtopic
Hey I've also been at PAX! Interested in meeting up Sunday and saying hi to each other?by calvinss4 - Offtopic
Hi Axel. Those sound like great ideas for power-ups. I'll definitely take a look at TetriNET; I guess tetris is so old that it's almost impossible to do something completely unique for it :) Supporting network play would be phenomenal, but I doubt I'll have the time to implement it (I'm heading off to grad school soon). In releasing the source code, I have high hopes that tby calvinss4 - Homebrew Applications
Howdy folks. Just released a version of TetriCycle that adds powerups to multiplayer; this puts quite a unique twist on tetris and I encourage you to try it with your friends (debugging multiplayer by my lonesome is difficult :P). Some time in the next two weeks, I plan on setting up an SVN repository and releasing the source code; I hope some people will be interested enough to contribute powby calvinss4 - Homebrew Applications
If I lit one of my official game discs on fire then stuck it in the Wii, I wouldn't expect it to work. Burning anything tends to ruin it, unless you're burning marshmallows... mmmm, tasty.by calvinss4 - The Junkyard
I didn't miss the point; quite the opposite actually. Of course you can leave an image on the screen; the VIDEO framework isn't going to refill the screen unless you tell it to. Now, the entire second half of your post talks about drawing a moving object on a static background. Since you're quite a curious felluh, I think it's best you understand how this entire process worby calvinss4 - Coding
If you have a static background you can just render it into a texture and draw it on a full screen quad every frame.by calvinss4 - Coding
If you're looking for some help here's a good site:by calvinss4 - The Junkyard
Hi there g_man. How long have you been programming in C? According to your Level struct, levelList.planetR is an integer. When you divide an integer by an integer (i.e. levelList.planetR/50), it carries out integer arithmetic, meaning only the integer part of the result is kept. So for example, 49/50 = 0.98 = 0. If you want to carry out floating point division, then at least one of the numbersby calvinss4 - Coding
I haven't looked into GRRLIB, so I can't comment on the documentation, but in general the importance of good documentation is overlooked in the software industry... GRRLIB must use GX under the hood (GX is the only graphics library), so based on what Daid said I'm guessing somewhere we have the following call: GX_SetTevOp (GX_TEVSTAGE0, GX_MODULATE); This sets the texture enby calvinss4 - Coding
You should see something in your makefile like: SOURCES := source INCLUDES := include "source" is a directory that contains all your .c files; "include" is a directory that contains all your .h files. If you add a new "miis" subdirectory to the "source" directory, and it contains .h and .c files, then you need to tell the compiler to also look in that directory for .h and .c files: SOUby calvinss4 - Coding
Yeah dude, if those header files reference a variable that's defined in a library, then you have to set up your makefile to link with that library. You can think of a library file as a pre-compiled object file.by calvinss4 - Coding
#include "miis\mii_heads.h" int main() { img_heads = GRRLIB_LoadTexture(mii_heads); } Let's start simple, referencing the example above. You're getting a linker error; main.c compiles just fine, which means it can "see" mii_heads (i.e. mii_heads is declared somewhere), but when linking the dependent object files into main.o, it can't find an object file that provides aby calvinss4 - Coding
Are you trying to reference a static variable from another file? That simply doesn't work. There's no need to declare a global variable static unless you anticipate name collisions at link time AND you only reference the variable from the file in which it's defined. If you're compiling in C++ you should be using namespaces to prevent name collisions. In short this is a no-by calvinss4 - Coding
Hi Tantric. I noticed that you use static global variables in some of your libwiigui cpp files (thanks for the great library!). This uses internal linkage and thus helps prevent name clashes, but before encouraging other people to use static, I just wanted to mention that the C++ standard now recommends using namespaces to prevent name clashes. I personally feel namespaces are overlooked too ofteby calvinss4 - Coding
Hello Zalo. Thanks for including English in your port. I like Rokoban's emphatic end-of-level animation! Your blog mentions:Quoteanimation blending, skinning, texture animation I've done some animation blending and skinning work using dual quaternions, and I'd like to bring it to the Wii eventually. Do you plan on sharing any of your animation code? I've read that the Wiiby calvinss4 - Homebrew Applications