Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Trying to make a pacman game. Pls help
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Jynx101




PostPosted: Sun May 21, 2017 3:34 pm   Post subject: Trying to make a pacman game. Pls help

What is it you are trying to achieve?

I'm trying to have pacman stop at the walls, but no luck

What is the problem you are having?

Describe what you have tried to solve this problem

I tried using whatdotcolor, but it's not responding at all.

Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)
<Answer Here>

Turing:


setscreen ("graphics:600;600")

drawfillbox (0, 0, maxx, maxy, black)

var font, font1 : int
font := Font.New ("Broadway:56:bold")
font1 := Font.New ("Broadway:30:bold")

Draw.Text ("PACMAN", 125, 400, font, yellow)
Draw.Text ("Classic", 232, 300, font1, brightblue)
Draw.Text ("Survival", 214, 250, font1, brightred)
Draw.Text ("Maze", 251, 200, font1, green)
Draw.Text ("Hell", 269, 150, font1, purple)






procedure Classic

    setscreen ("graphics:448,576,offscreenonly,nobuttonbar")
    View.Set ("offscreenonly")
    var chars : array char of boolean
    var xlocation, ylocation, xdirection, ydirection, r : int
    var pacstate : boolean

    xlocation := 0
    ylocation := 0
    xdirection := 225
    ydirection := 150

    r := 11
    pacstate := true

    var background := Pic.FileNew ("PacmanBack.bmp")

    loop
        Pic.Free (background)
        background := Pic.FileNew ("PacmanBack.bmp")
        Pic.Draw (background, 0, 0, picMerge)

        drawfillbox (100,100,200,200,blue)
       
        Input.KeyDown (chars)
        if chars (KEY_RIGHT_ARROW) then
            if pacstate = true then     %Mouth Closed
                drawfilloval (xdirection, ydirection, r, r, yellow)
                xdirection := xdirection + 5
                pacstate := false     %Changes it so the next time around it's open
            else     %Mouth Open
                drawfilloval (xdirection, ydirection, r, r, yellow)
                drawfillarc (xdirection, ydirection, r, r, 310, 40, black)
                xdirection := xdirection + 5
                pacstate := true     %Changes it so the next time the mouth is closed
            end if

        elsif chars (KEY_LEFT_ARROW) then
            if pacstate = true then
                drawfilloval (xdirection, ydirection, r, r, yellow)
                xdirection := xdirection - 5
                pacstate := false
            else
                drawfilloval (xdirection, ydirection, r, r, yellow)
                drawfillarc (xdirection, ydirection, r, r, 130, 210, black)
                xdirection := xdirection - 5
                pacstate := true
            end if

        elsif chars (KEY_DOWN_ARROW) then
            if pacstate = true then
                drawfilloval (xdirection, ydirection, r, r, yellow)
                ydirection := ydirection - 5
                pacstate := false
            else
                drawfilloval (xdirection, ydirection, r, r, yellow)
                drawfillarc (xdirection, ydirection, r, r, 230, 310, black)
                ydirection := ydirection - 5
                pacstate := true
            end if

        elsif chars (KEY_UP_ARROW) then
            if pacstate = true then
                drawfilloval (xdirection, ydirection, r, r, yellow)
                ydirection := ydirection + 5
                pacstate := false
            else
                drawfilloval (xdirection, ydirection, r, r, yellow)
                drawfillarc (xdirection, ydirection, r, r, 70, 120, black)
                ydirection := ydirection + 5
                pacstate := true
            end if


        else
            drawfilloval (xdirection, ydirection, 12, 12, yellow)     %Draws Pacman when no keys are pressed
        end if

        View.UpdateArea (xdirection - 45, ydirection - 45, xdirection + 45, ydirection + 45)         %Updates just the area to reduce lag
       

        if xdirection = 1 and whatdotcolor (xlocation + 11, ylocation) = blue then
            cls
        elsif xdirection = -1 and whatdotcolor (xlocation - 11, ylocation) = blue then
            cls
        elsif ydirection = 1 and whatdotcolor (xlocation, ylocation + 11) = blue then
            cls
        elsif ydirection = -1 and whatdotcolor (xlocation, ylocation - 11) = blue then
            cls
        end if

        delay (12)
       
    end loop

end Classic


var x, y, button : int
loop
    mousewhere (x, y, button)
    locate (1, 1)
    if button = 1 and x > 230 and x < 385 and y > 300 and y < 340 then
        cls
        Classic
    end if
end loop




Please specify what version of Turing you are using

4.1.1
Sponsor
Sponsor
Sponsor
sponsor
Insectoid




PostPosted: Sun May 21, 2017 3:51 pm   Post subject: RE:Trying to make a pacman game. Pls help

code:
if xdirection = 1 and whatdotcolor (xlocation + 11, ylocation) = blue then
            cls
        elsif xdirection = -1 and whatdotcolor (xlocation - 11, ylocation) = blue then
            cls
        elsif ydirection = 1 and whatdotcolor (xlocation, ylocation + 11) = blue then
            cls
        elsif ydirection = -1 and whatdotcolor (xlocation, ylocation - 11) = blue then
            cls
        end if


In English, this code says 'if we hit a wall, clear the screen'. Is that really what you want to happen? I would think that if you hit a wall, you'd want to stop moving, or change direction, or lose the game, or something. Clearing the screen essentially does nothing, because when you restart the loop, it all gets drawn again anyway. In fact, you should be erasing everything at the end of the loop regardless!
Jynx101




PostPosted: Sun May 21, 2017 3:54 pm   Post subject: RE:Trying to make a pacman game. Pls help

Ohhhh. Ok. So if I were to put in another command, it would do so otherwise?
Jynx101




PostPosted: Sun May 21, 2017 4:10 pm   Post subject: RE:Trying to make a pacman game. Pls help

Wait, still doesn't work. I made pacman go into something blue, but it doesn't do anything Insectoid, even with a different command. Does it have to do with where I place the if statement?
Insectoid




PostPosted: Sun May 21, 2017 5:22 pm   Post subject: RE:Trying to make a pacman game. Pls help

It has to do with a lot of things. Hard to tell without seeing your code. It's governing movement though, so it's very likely the code should be close to your other movement code.

You can't just slap code anywhere and hope it works, because it won't. Ever. You need to put a lot of thought into what you're trying to do and what you're actually doing.
Jynx101




PostPosted: Sun May 21, 2017 11:48 pm   Post subject: Re: Trying to make a pacman game. Pls help

Yeah, thanks. I got it to work now, after toying around with it a bit. Although, even after fixing it, I did the command drawline, and the pacman doesn't stop. Why?
Insectoid




PostPosted: Mon May 22, 2017 1:12 pm   Post subject: RE:Trying to make a pacman game. Pls help

I don't know, there could be a thousand reasons. Without seeing your code I have no way of knowing.
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 7 Posts ]
Jump to:   


Style:  
Search: