|
I want to set the speed of the object to 6 if it's travelling between the 1st and 3rd positions. But it's 6 from start to end. How can I set the speed for in between positions(1st to 3rd)? Pls refer to the code above.
|
|
|
|
|
Wow, that's a hell of a cryptic question. You have to get out of your code for a while and think that we can't see your screen. For a C++ developper (which lot of us are, obviously, except the ones that get lost on this board), an object is a class. And you can't move a class or make it travel. I guess you are doing something on the screen and displaying something that moves but it is very vague. Now, for incrementing a variable, either you increment it or you don't. You don't have another choice. Maybe you are using a float and would like to have a constant increase of your value when the thing you move on the screen is moving, but then you need to handle it yourself and it really depends a lot on how you are moving those things. When you move such a thing, increment a bit your variable at the same time.
That's about all the help we can provide giving your cryptic question.
|
|
|
|
|
Pardon me! I meant the real world object(like a box, car etc.) not the Object class.
|
|
|
|
|
T.RATHA KRISHNAN wrote: But it's 6 from start to end.
Which means the if(pWaypointNum1 < 6) condition will never evaluate to true. Have you stepped through the code to verify this?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
What does mCharacter1->GoToWaypoint(pWaypointNum1) look like?
Does this use 'testl' to increment the screen position?
If so, where else does 'testl' get modified?
What happens when pWaypointNuml = 6 ?
|
|
|
|
|
Why it's been voted down?
|
|
|
|
|
How is that piece of code being run? Is it being run in a loop?
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
|
|
|
|
|
I've used while loop instead of the top most if statement. The result is same. What to do?
|
|
|
|
|
Your first line inside the while/if statement is:
if((pWaypointNum1 > 1) && (pWaypointNum1 <= 3))
Why not just set pWaypointNum1 to 1 before the while/if statement and then change that line to
if(pWaypointNum1 < 4)
as it seems to take integer values?
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
|
|
|
|
|
Perspx wrote: Why not just set pWaypointNum1 to 1 before the while/if statement
in the original
when pWaypointNuml = 1 testl will be set to 3
your solution
when pWaypointNuml = 1 testl will be set to 6
|
|
|
|
|
Oh right missed that
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
I hope to understand your problem right.
Let's suppose your "Object" is a square, if you want to move it from A to B as "animation" with different speeds... One way to do could be:
1) You calculate the differences in coordinates between A and B. Let's suppose an horizontal line where A is (0, 150) and B (500, 150). So for that example the distance is going to be 500 "pixels" or units of your screen coordinates.
2) You set your different speeds. Let's suppose 10 pixels / sec, 50 pixels / sec and 100 pixels / sec
3) Speed = distance / time == distance = speed * time == time = distance / speed Let's choose this last one, time depending on the other 2.
4) You make a function to increment in one pixel the coordinate of your square
void MoveSquare () { square.x = square.x + 1; }
for such a line you don't need a function, but if you want to do more things or move it in more directions you can ride better with it.
5) When you have to move the square you just need to calculate the time needed with the end_pos and the speed (500 / 10 = 50 sec; 500 / 50 = 10 secs; 500 / 100 = 5 sec)
6) You have to call the MoveSquare 500 times to move it till end_pos, then
1st case -> 50 sec / 500 calls = 0.1 sec / call
2nd case -> 10 sec / 500 calls = 0.05 sec / call
3rd case -> 5 sec / 500 calls = 0.01 sec / call
7) Create a timer with that refresh rates 100, 50, 10 ms and call MoveSquare into it
8) when end_pos is reached, kill the timer
Is something like that what you were searching?
Regards.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Hi All,
I am developing an application to Windows Mobile Using VS 2005. And the OS is Windows XP.
I have developed a new dialpad with buttons. As a dialpad it works fine.
But for this I need to load an image. Using CBitmapButton i can load only BMP images. This image changes according to the Skin of the mobile.
When I googled I got the Answer as
SetBitmap API. But to my badluck that is not available for CButton.
Along with this, is it possible to write text on a loaded image?
So can someone help regarding this.
If it is Code then it will be more helpful.
Thanks in advance.
|
|
|
|
|
madyastha wrote: When I googled I got the Answer as
SetBitmap
API. But to my badluck that is not available for CButton.
See here.
madyastha wrote: Along with this, is it possible to write text on a loaded image?
So can someone help regarding this.
Does this help?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Hello
Thanks for quick response.
Before posting here I have tried SetBitmap() or SendMessage() Functions. In the link you mentioned it is once again telling the same.
Use SetBitmap(). So this wont solves my problem
Thanks.
|
|
|
|
|
I was simply responding to your "SetBitmap is not available for CButton" statement.
Have you looked at the CImage class? It can handle other graphic formats in addition to BMP.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Hi...
Is this is correct way of using CImage & its functions?
Because using this also I was not able to load image.
HBITMAP hBitmap = NULL;
hBitmap = SHLoadImageFile(TEXT("windows\\dlrbtn_up_land.gif"));
CRect tr;
m_btnSeven.GetClientRect(&tr);
HDC hdc;
hdc = ::GetDC(m_hWnd);
CImage cImage;
cImage.Attach(hBitmap);
cImage.Draw(hdc,tr);
|
|
|
|
|
Hello ....
Pls can somebody help me regarding this.
Thanks
|
|
|
|
|
Hi all,
i am trying to make registry enteries of type REG_DWORD. for that i m passing a integer value 1 but in registry its giving invalid dword 32 bit value...
how can i make correct registry enteries
Thanks in advance
|
|
|
|
|
Can you post relevant code??
Regards,
Sandip.
|
|
|
|
|
setregvalue1(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test"),_T("NoModify"),0x00000001);
void setregvalue1 ( HKEY hkey, CString str_hkey, CString name, CString data)
{
HKEY childkey = 0 ;
DWORD dispos ;
RegCreateKeyEx ( hkey, (LPCTSTR) str_hkey, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_CREATE_SUB_KEY | KEY_ALL_ACCESS, NULL, &childkey, &dispos ) ;
RegSetValueEx ( childkey, (LPCTSTR)name, 0, REG_DWORD, (const BYTE*) (LPCTSTR)data, data.GetLength());
RegCloseKey ( childkey ) ;
}
|
|
|
|
|
VCProgrammer wrote:
RegSetValueEx ( childkey, (LPCTSTR)name, 0, REG_DWORD, (const BYTE*) (LPCTSTR)data, data.GetLength());
Are you passing the CString for type REG_DWORD.
I think it should be
DWORD dwValue;
RegSetValueEx ( childkey, (LPCTSTR)name, 0, REG_DWORD, (const BYTE*) &dwValue, sizeof(DWORD));
check this for information Registry Operations[^]
Regards,
Sandip.
|
|
|
|
|
thanks it solved my problem
|
|
|
|
|
VCProgrammer wrote: RegSetValueEx ( childkey, (LPCTSTR)name, 0, REG_DWORD, (const BYTE*) (LPCTSTR)data, data.GetLength());
You've told RegSetValueEx() to expect a DWORD value, yet what you are passing is not. Try:
char *stop;
DWORD dwValue = strtoul(data, &stop, 10);
RegSetValueEx(childkey, name, 0, REG_DWORD, (const BYTE *) &dwValue, sizeof(DWORD));
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
I think this[^] article is helpful for you.
|
|
|
|