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

Username:   Password: 
 RegisterRegister   
 Function won't run
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
ScribbleS




PostPosted: Fri Jun 19, 2009 10:20 am   Post subject: Function won't run

What is it you are trying to achieve?
I am trying to create a pseudo-3D environment with keyboard controls. It's for fun. xD


What is the problem you are having?
A function in a class I wrote wouldn't run. Every time I try to run it Turing says "variable has no value".


Describe what you have tried to solve this problem
I read all the tutorials I could find but could not find what was wrong with it. I checked through the code and wasn't able to detect anything. Then again, I'm not a very experienced programmer and could've easily missed some stupid mistakes.


Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)
Here's what I have so far...(the Pikachu image is just for testing. Razz)

Turing:


class engine
    import Input
    export draw, update
    function jump (glvl : int, var posy : int, var v : int) : int
        if posy >= glvl then
            if v >= 0 then
                posy += v ** 2
            else
                posy -= v ** 2
            end if
            v -= 1
            result posy

        end if
        result jump (glvl, posy, v)
    end jump
    fcn move (var key : array char of boolean, var x, y, z : int) : int
        if key (KEY_LEFT_ARROW) then
            x -= 1
        elsif key (KEY_RIGHT_ARROW) then
            x += 1
        elsif key ('z') then
            var rate : int := 3
            y := jump (y, y, rate)
        elsif key (KEY_UP_ARROW) then
            z += 1
        elsif key (KEY_DOWN_ARROW) then
            z -= 1
        end if

        var pos : int := 10 ** 6 * x + 10 ** 3 * y + z
        result pos
    end move
    fcn update(x, y, z:int):int
        var pos : int := 10 ** 6 * x + 10 ** 3 * y + z
        result pos
    end update
    proc draw (pic:int, var currentpos : int)
        var posx, posy, posz, pos, passx, passy, passz : int
        var key : array char of boolean
        Input.KeyDown (key)
        passx := currentpos div 10**6
        passy := (currentpos - 10**6*(currentpos div 10**6))div 10**3
        passz := (currentpos - 10**3*(currentpos div 10**3))
        pos := move(key, passx, passy, passz )
        posx := pos div 10**6
        posy := (pos - 10**6*(pos div 10**6)) div 10**3
        posz := (pos - 10**3*(pos div 10**3))
        var newpic : int := Pic.Scale (pic, Pic.Width (pic) div posz, Pic.Height (pic) div posz)
        Pic.Draw (newpic, round (posx), round (posy), 0)
    end draw
end engine


var picID : int := Pic.FileNew ("Pikachu.bmp")
var px, py, pz : int
var k : array char of boolean
var pt: pointer to engine
var enafcn:int:=0
px := maxx div 2
py := maxy div 2
pz := 1
enafcn:=engine(pt).update (px, py, pz) % ALWAYS GETS STUCK HERE. SAYS THAT "enafcn" HAS NO VALUE. =.="
engine(pt).draw (picID, enafcn)




Please specify what version of Turing you are using
Turing 4.1.1. I'm trying to "wean" myself off of Turing, but that's evidently going to take some time... Embarassed
Sponsor
Sponsor
Sponsor
sponsor
corriep




PostPosted: Fri Jun 19, 2009 2:41 pm   Post subject: Re: Function won't run

Turing:
var pt : pointer to engine
new engine, pt

You need the second line to make a new instance of engine. Also to shorten this you can write :
Turing:
var pt : ^engine
new pt
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  [ 2 Posts ]
Jump to:   


Style:  
Search: