multi touch

Non-platform specific questions.

multi touch

Postby praaab » Sun Jul 10, 2011 5:22 pm

ok so i have my game as ipod format like on screen buttons but i need to be able to touch two buttons at onece like jump and move to the right at the same time
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Sun Jul 10, 2011 11:22 pm

In that case, just have a mouse button down for each event. gE will keep the event going until you release, so having two actors with two separate mouse button down events acts as a form of multitouch.
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score

Re: multi touch

Postby praaab » Mon Jul 11, 2011 1:56 pm

its not working on my ipod when i test it in geplayer
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby schnellboot » Mon Jul 11, 2011 2:41 pm

maybe you tell us what you exactly did
schnellboot
 
Posts: 819
Joined: Sat Mar 31, 2007 1:35 pm
Location: Germany
Score: 102 Give a positive score

Re: multi touch

Postby praaab » Mon Jul 11, 2011 3:19 pm

ok so when u test the game out on the ipod only one button works at a time
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Mon Jul 11, 2011 7:55 pm

I can make a game, with an actor that has this code.
actor -> Mouse Button Down (left) -> Script Editor
Code: Select all
r=0;

actor -> Mouse Button Up[ (left) -> Script Editor
Code: Select all
r=255;


Clone several of them. Now when you test that on iphone, you'll be able to change more than one of their colors. Perhaps your code isn't handling multitouch properly. Do the buttons work properly in the editor when you click them?
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score

Re: multi touch

Postby praaab » Mon Jul 11, 2011 10:30 pm

not really in some spots when u click the button it wont move the actor its like u have to go back or jump and move plus all the buttons are cloned by cloneindex
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Tue Jul 12, 2011 4:18 am

Well if clicking the button in editor doesn't work, then its not going to work when testing on device. You need to create a system that works properly in the editor first, so if you need help with that, give us the code you are trying to move the actor with.
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score

Re: multi touch

Postby praaab » Tue Jul 12, 2011 4:48 am

mouse button down event:
if(cloneindex==0){move=0;dir=0;} //0 is for left
if(cloneindex==1){move=1;dir=1;} //1 is for right
if(cloneindex==2)
{
if(canjump>0){
player.yvelocity-=20;
canjump--;
move=3;
}
}

{
if(huge==3){if(cloneindex==3){CreateTimer("player", "shoot dude", 20);}}



}
//// lolwut
if(cloneindex==0)
{
MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensLeft", "");
MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensRight", "");
}


if(cloneindex==1)
{
MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensRight", "");
MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensLeft", "");

}

/// sounds
//if(cloneindex==0||cloneindex==1){}
if(cloneindex==2){PlaySound2("data/Mario Jump.wav", 0.200000, 1, 0.000000);} //jump sound
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Tue Jul 12, 2011 5:03 am

Well, first off, you should use a switch statement (it is a lot clearer). Here is the code converted to fit within a switch.
Code: Select all
switch(cloneindex)
 {
   case 0:
     move=0;
     dir=0;
     MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensLeft", "");
     MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensRight", "");
     break;

   case 1:
     move=1;
     dir=1;
     MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensRight", "");
     MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensLeft", "");
     break;

   case 2:
     if(canjump>0)
     {
       PlaySound2("data/Mario Jump.wav", 0.200000, 1, 0.000000);
       player.yvelocity-=20;
       canjump--;
       move=3;
     }
     break;

   case 3:
     if(huge==3)
     {
       CreateTimer("player", "shoot dude", 20);
     }
     break;
 }


Pretty much a switch takes the variable within the parenthesis on the first line and allows you to execute code based on its value. So, case 0: would execute if the variable equaled zero. case 1: would execute if it equaled one, and so on. It executes code until it reaches a break, which gets you out of the switch statement.

Now to address your actual problem, what in this has to do with movement? Is the movement code in the player's draw? As nothing else has to do with moving anything. Also what are the buttons? Button.0 seems to be a stop button as it sets move to 0, and 1 seems to be a move right. 2 is jump, and 3 is attack. Is that right?
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score

Re: multi touch

Postby praaab » Tue Jul 12, 2011 5:25 am

right and its still not doing the double touch were i can jump and move at the same time on my ipod
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Tue Jul 12, 2011 6:42 am

If you read my post, I said that I changed the code to make it look cleaner. I did nothing to make it work, as you haven't given me enough information to help with that yet. I asked for the information I needed (what moves the actor). Clearly you are expecting this code to move some actor, but I see no code that moves anything (except the jump). As I said before, this is the information that I need.
skydereign wrote:Now to address your actual problem, what in this has to do with movement? Is the movement code in the player's draw? As nothing else has to do with moving anything. Also what are the buttons? Button.0 seems to be a stop button as it sets move to 0, and 1 seems to be a move right. 2 is jump, and 3 is attack. Is that right?


From what you've given me, the player clearly will not move (though he could jump). I need to see the code that actually makes him move, for instance you might have something like this in the player's draw.
Code: Select all
switch(move)
{
    case 0:
    break;

    case 1:
    switch(dir)
    {
        case 0:
        player.x-=5;
        break;

        case 1:
        player.x+=5;
        break;
    }
    break;
}
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score

Re: multi touch

Postby praaab » Tue Jul 12, 2011 2:27 pm

no he can move its just when u jump he cant move until u let go of the jumping button. my friend helped me with the button but im not sure where the moving cod its at
it could be mouse button up: move=2; and mouse leave: move=2; or player> draw actor and then:
//movement on ipod
if(move==1){x+=7;}
if(move==0){x-=7;}
if(move==2){x=x+0;;}
praaab
 
Posts: 82
Joined: Sat Jun 18, 2011 2:14 pm
Score: 1 Give a positive score

Re: multi touch

Postby skydereign » Wed Jul 13, 2011 12:20 am

Okay, that is why. Yes that draw code is the movement code (notice how it moves changes the player's xy position). The reason you can't move after you jump (unless you let go) is that you keep changing the move variable. Really your move variable makes no sense. To make it work, remove this line of code.
Code: Select all
move=3;


That is found in your jump button code, so to use the cleaned up switch version, here is the code you should use.
Code: Select all
switch(cloneindex)
{
   case 0:
     move=0;
     dir=0;
     MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensLeft", "");
     MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensRight", "");
     break;

   case 1:
     move=1;
     dir=1;
     MoveTo("Button.3", 0.000000, 0.000000, 1000.000000, "sensRight", "");
     MoveTo("Button.2", 0.000000, 0.000000, 10000.000000, "sensLeft", "");
     break;

   case 2:
     if(canjump>0)
     {
       PlaySound2("data/Mario Jump.wav", 0.200000, 1, 0.000000);
       player.yvelocity-=20;
       canjump--;
     }
     break;

   case 3:
     if(huge==3)
     {
       CreateTimer("player", "shoot dude", 20);
     }
     break;
}


My suggestion though is to change how your move variable works. It looks like you are using your move variable more like a dir variable (which you already have). move should equal zero when the actor is not supposed to move left or right, and should be one when it is.
User avatar
skydereign
 
Posts: 3510
Joined: Mon Jul 28, 2008 8:29 am
Score: 589 Give a positive score


Return to General

Who is online

Users browsing this forum: No registered users and 1 guest