|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On November 18 2011 13:15 destian wrote: where does business logic go in an mvvm pattern?
should the viewmodel contain any business logic?
No the business logic belongs in the model. The View Model should contain the logic for presentation of data.
|
On November 18 2011 13:06 Frosticles wrote: Hi, I am having trouble initializing variables using str.at(). in c++ for example, if I have a code like
cin >> str;
b = (str.at(0)); c = (str.at(1));
when imputting a string such as 12, it wont initialize properly, and it will instead give me something like b = 50 c = 58
I don't know why its not initializing properly
Thanks
make sure b and c are a string or char
Declaring them as char's fixed the initialization, but I'm still having troubles doing something such as multiplying them togethor. char a = 3 char b = 4
(a * b) = 2601
Any reason why this is?
|
On November 18 2011 15:08 Frosticles wrote:Show nested quote + On November 18 2011 13:06 Frosticles wrote: Hi, I am having trouble initializing variables using str.at(). in c++ for example, if I have a code like
cin >> str;
b = (str.at(0)); c = (str.at(1));
when imputting a string such as 12, it wont initialize properly, and it will instead give me something like b = 50 c = 58
I don't know why its not initializing properly
Thanks
make sure b and c are a string or char
Declaring them as char's fixed the initialization, but I'm still having troubles doing something such as multiplying them togethor. char a = 3 char b = 4 (a * b) = 2601 Any reason why this is?
You can't multiply letters. You can multiply numbers. If you want to multiply them, they will need to be ints. The reason you get bogus data is because you're multiplying the ASCII values of two stored characters.
|
But I cannot declare them as ints because then it just gives me bogus data like I said in the first post <.<
|
Did you neglect to convert the parsed string into an int?
|
On November 18 2011 15:08 Frosticles wrote:Show nested quote + On November 18 2011 13:06 Frosticles wrote: Hi, I am having trouble initializing variables using str.at(). in c++ for example, if I have a code like
cin >> str;
b = (str.at(0)); c = (str.at(1));
when imputting a string such as 12, it wont initialize properly, and it will instead give me something like b = 50 c = 58
I don't know why its not initializing properly
Thanks
make sure b and c are a string or char
Declaring them as char's fixed the initialization, but I'm still having troubles doing something such as multiplying them togethor. char a = 3 char b = 4 (a * b) = 2601 Any reason why this is? I haven't messed with c++ in a while so I just googled char to int and found this, hope it helps:
c = atoi(&a) * atoi(&b);
The atoi() function converts from ascii to int
|
You want to do:
#include <stdlib.h>
cin >> str; int x = atoi(str);
|
|
tyvm :D I didn't realize that you had to actually convert the character 4 to an integer 4, but it makes complete sense now, thankyou so much :D
|
I have an algorithm question. Say I have a bunch of entities on a grid like so:
![[image loading]](http://img20.imageshack.us/img20/6229/entitiesgrid.png)
Now, Blueman needs to find the nearest Redman to him. The simple solution is to iterate through each man, checking that it is indeed a Redman, calculate distance, compare the distances to find the smallest one and proceed from there.
But in my application I could have thousands of these guys searching for one another at any given time, so I feel this is going to be way too slow.
Is there a better way to find the nearest guy? Memory is not an issue for my particular problem, so I'm happy to trade memory for processing time if such a thing is possible here.
(Note: At the moment I'm not actually storing a grid, just the entities on a list keeping track of their own coordinate data. But changing design is no problem here.)
|
Hmm.. stupid idea but.. you could try to create "squares" around the blueman until you hit a redman based on a radius. Since you know the distance everywhere will be the same, the first redman you come into contact with should be the closest. For example... Just an idea, don't know if it would be more efficient.
![[image loading]](http://i.imgur.com/wNtU7.png)
*edit* come to think of it, the more redmans you have the more efficient that would be, sortof. You could keep a count of your redmans and switch between your method and that above based of that. For example, if your count is something like 2.. it's probably smarter to just use your method.
|
Kentor
United States5784 Posts
On November 19 2011 15:37 Teim wrote:I have an algorithm question. Say I have a bunch of entities on a grid like so: ![[image loading]](http://img20.imageshack.us/img20/6229/entitiesgrid.png) Now, Blueman needs to find the nearest Redman to him. The simple solution is to iterate through each man, checking that it is indeed a Redman, calculate distance, compare the distances to find the smallest one and proceed from there. But in my application I could have thousands of these guys searching for one another at any given time, so I feel this is going to be way too slow. Is there a better way to find the nearest guy? Memory is not an issue for my particular problem, so I'm happy to trade memory for processing time if such a thing is possible here. (Note: At the moment I'm not actually storing a grid, just the entities on a list keeping track of their own coordinate data. But changing design is no problem here.) Couple of questions: Are the number of guys of each color constant? Are they going to move at all at any later time?
I use something called a cell linked list for molecular simulations. It can probably be applied here although the scenario is different.
Also for the post above, how would the computer know that the red guy is in the square that you've drawn? It would have to check each red guy again which is the problem we are trying to avoid.
|
On November 19 2011 16:14 Kentor wrote:Show nested quote +On November 19 2011 15:37 Teim wrote:I have an algorithm question. Say I have a bunch of entities on a grid like so: ![[image loading]](http://img20.imageshack.us/img20/6229/entitiesgrid.png) Now, Blueman needs to find the nearest Redman to him. The simple solution is to iterate through each man, checking that it is indeed a Redman, calculate distance, compare the distances to find the smallest one and proceed from there. But in my application I could have thousands of these guys searching for one another at any given time, so I feel this is going to be way too slow. Is there a better way to find the nearest guy? Memory is not an issue for my particular problem, so I'm happy to trade memory for processing time if such a thing is possible here. (Note: At the moment I'm not actually storing a grid, just the entities on a list keeping track of their own coordinate data. But changing design is no problem here.) Couple of questions: Are the number of guys of each color constant? Are they going to move at all at any later time? I use something called a cell linked list for molecular simulations. It can probably be applied here although the scenario is different. Also for the post above, how would the computer know that the red guy is in the square that you've drawn? It would have to check each red guy again which is the problem we are trying to avoid. The most important question that needs to be answered is do they move and do they move frequently.
|
Teim, quadtree is your solution. First you put all your guys into quadtree. Then, when you need to find closest, you first iterate over your guy's neighbour nodes and find the ones that have target guys in them and only then you check these target guys from those nodes to find the closest one.
|
I have a really annoying html problem, I'm trying to get a MouseOver in my area tag and I have tried many variations, but I don't get it, here's my code
<div id="Stadt"> <img src="../Bilder/Stadtteile.png" usemap="#STT" border="0" alt="1" id="ST"> <map id="STT" name="STT"> <area shape="poly" coords="539,63,513,151,709,161,537,195,621,227,639,213,657,207,683,195,737,173,717,145,711,107,671,109,679,65,621,79,583,203,537,119," href="Über Tokyo.html#Adachi" alt="adachi" title="adachi" onmouseover="Stadtteile ('over', 'Adachi');" onmouseout="Stadtteile ('out', 'welt');"> </map> <div id="Liste"> <a href="Adachi" title="Adachi">Adachi</a>
</div> </div> function StadtteileHover(nmode,srcname) { if (nmode == 'over') { document.getElementById('STT').src = '../bilder/aktiv/' + srcname + '.png'; } else { document.getElementById('STT').src = '../bilder/Stadtteile.png'; } }
I have shortened the code to the relavent parts. I have tried onmouseover="this.src='../Bilder/aktiv/adachi.png';" onmouseout="this.src='../bilder/Stadtteile.jpg';" as well. Never mind, it was onmouseover="if(document.images) document.ST.src='../Bilder/Aktiv/Adachi.png';"onmouseout="if(document.images) document.ST.src='../Bilder/Stadtteile.png';"
|
Hi!
I'm currently doing a Java 2 Mobile Edition game (an RPG, also, my first real game) for a class and I'm having a bit of trouble with the game loop. Right now, it looks about like this (the game loop class is a Runnable)
public void run() { loadResources(); while(!gameOver) { updateScreen(); processKeys(); Thread.sleep(40); } } So, the game loop sleeps for 40 ms at every iteration, which results in 25 fps. When processing the keys, I want to move the player character 1 tile (32x32) each time he hits one of the movement buttons. Now, I can obviously make it so the player can move 32 pixel per step (each method call to player.move() increments or decrements the position in x or y by 32) , therefore 32 * 25 pixel per second, which is way too fast. I'm kind of stumped right now on how to make it so the player character can only move between tiles while also making him move at a reasonable speed.
|
You probably have to do your moving action at the moment that the player releases the key. This would result in 1 calculation aka 32 pixels. Or you can either use counters or a variable that stores if you have moved since the key is pressed and resets @ release. Just some quick options i came up with.
|
On November 19 2011 22:22 klo8 wrote:Hi! I'm currently doing a Java 2 Mobile Edition game (an RPG, also, my first real game) for a class and I'm having a bit of trouble with the game loop. Right now, it looks about like this (the game loop class is a Runnable) public void run() { loadResources(); while(!gameOver) { updateScreen(); processKeys(); Thread.sleep(40); } } So, the game loop sleeps for 40 ms at every iteration, which results in 25 fps. When processing the keys, I want to move the player character 1 tile (32x32) each time he hits one of the movement buttons. Now, I can obviously make it so the player can move 32 pixel per step (each method call to player.move() increments or decrements the position in x or y by 32) , therefore 32 * 25 pixel per second, which is way too fast. I'm kind of stumped right now on how to make it so the player character can only move between tiles while also making him move at a reasonable speed.
If you want the wee dude to only move 32 units at a time, but he is moving fast because hes doing that every frame you probably have 2 choices, you can only handle the input for moving the character every few frames. So he clicks the button and the guy moves, and then it will only allow him to move again after a certain amount of time, however this will result in a stuttering movement.
Another thing you could do is when the guy is told to move to the next square, the next square is stored as the players destination, and then the player is slowly animated moving to that next square, but its hard to say without knowing exactly what you want to do.
|
klo8: You can register when you moved last. And then ignore keycommands (or only move commands, depending on what you want) until you want to allow it again. You can do that frame based (normal counter reduced by 1 each time processKeys() is executed), or time based (get system time and calculate how long it has been since you issued the lock).
|
Wow, thanks for the quick answers! I think I'll try Zocat's approach first, it sounds the most robust.
Oh, and if you ever want to program a game in your spare time, try not doing it with J2ME. It's alright and the built-in game stuff is quite helpful, but it's all so outdated. It's based on Java 1.3, which like 10 years old by now. No generics, no foreach loops, it's pretty annoying sometimes. If I had to choose, I'd go with XNA.
By the way, it's not really the player that is moving, the character is fixed in the middle of the screen and the environment around him moves (think of Pokemon) but that's not really relevant.
|
|
|
|