Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 33

Thread: Lua problems

                  
   
  1. #21
    GP2X Coder/Moderator
    Join Date
    Jan 2006
    Posts
    1,678
    Rep Power
    87

    Default

    Quote Originally Posted by yaustar View Post
    car2 = {}
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = Image.load("images/car2.PNG")

    This will solve one of your problems.
    This IS your problem at the moment and the fix is above.

  2. #22
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    I have added that to my code already

    -----------------------------------------------------------------
    -- Created by splodger15


    ----------detect other cars collision--------------
    function detectCollision(player, opponent)
    if (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width()) and (player.y + character:height() > opponent.y) and (player.y < opponent.y + opponent.pic:height()) then
    screen.waitVblankStart(60)
    dofile("menu.lua")
    end
    end

    Room_width = 480
    Room_height = 272
    player1x = 15
    player1y = 136
    road=Image.load("images/road.PNG")
    background=road
    car1=Image.load("images/car1.PNG")
    player1=car1
    car2 = {}
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = Image.load("images/car2.PNG")

    car3=Image.load("images/car3.PNG")
    car4=Image.load("images/car4.PNG")

    PSN ID: splodger15

  3. #23
    DCEmu Old Pro
    Join Date
    May 2006
    Posts
    1,073
    Rep Power
    75

    Default

    perhaps you have to use the code you used for car2 for car3 and car4 as well

  4. #24
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Quote Originally Posted by jak66 View Post
    perhaps you have to use the code you used for car2 for car3 and car4 as well
    I am not sure

    PSN ID: splodger15

  5. #25
    GP2X Coder/Moderator
    Join Date
    Jan 2006
    Posts
    1,678
    Rep Power
    87

    Default

    The problem that is you STILL have the code that overwrites the variable type of car2.pic here. It goes from an image to a table:
    car2.pic = car2
    And yes, you have to do it for car3 and car4 since the same mistake is duplicated there.

  6. #26
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Thank you for helping me out with this yaustar

    My game runs for a bit (5 seconds) then it comes up with this error

    Error: SCRIPT.LUA:6: attempt to call method 'width' (a nil value)

    ------------------------------------------------------------------

    -- Created by splodger15


    ----------detect other cars collision--------------
    function detectCollision(player, opponent)
    if (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width()) and (player.y + character:height() > opponent.y) and (player.y < opponent.y + opponent.pic:height()) then
    screen.waitVblankStart(60)
    end
    end

    Room_width = 480
    Room_height = 272
    player1x = 15
    player1y = 136
    road=Image.load("images/road.PNG")
    background=road
    car1=Image.load("images/car1.PNG")
    player1=car1
    car2=Image.load("images/car2.PNG")
    car3=Image.load("images/car3.PNG")
    car4=Image.load("images/car4.PNG")

    ----------walls------------

    wall1 = Image.createEmpty(480,2)
    wall2 = Image.createEmpty(2,272)
    wall3 = Image.createEmpty(2,272)
    wall4 = Image.createEmpty(480,2)

    wall1 = {x = 0, y = 0, height = wall1:height(), width = wall1:width() }
    wall2 = {x = 450, y = 0, height = wall2:height(), width = wall2:width() }
    wall3 = {x = 0, y = 0, height = wall3:height(), width = wall3:width() }
    wall4 = {x = 0, y = 299, height = wall4:height(), width = wall4:width() }



    player = {}
    player.x = 250
    player.y = 100
    playerHeight = 63
    playerWidth = 33

    car2 = {}
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = Image.load("images/car2.PNG")

    car3 = {}
    car3.x = 228
    car3.y = 90
    car3Height = 63
    car3Width = 33
    car3.pic = Image.load("images/car3.PNG")

    car4 = {}
    car4.x = 28
    car4.y = 20
    car4Height = 63
    car4Width = 33
    car4.pic = Image.load("images/car4.PNG")

    character = car1


    ------------------player sprite loading--------------

    function rands1()
    rand2 = math.random(1,3)


    if rand2 ==1 then
    car2.pic = car2
    end

    if rand2 ==2 then
    car3.pic = car3
    end

    if rand2 ==3 then
    car4.pic = car4
    end
    end

    function rands2()
    rand3 = math.random(1,3)


    if rand3 ==1 then
    car2.pic = car2
    end

    if rand3 ==2 then
    car3.pic = car3
    end

    if rand3 ==3 then
    car4.pic = car4
    end
    end

    function rands3()
    rand4 = math.random(1,3)


    if rand4 ==1 then
    car2.pic = car2
    end

    if rand4 ==2 then
    car3.pic = car3
    end

    if rand4 ==3 then
    car4.pic = car4
    end
    end


    XScrollPosition = 480

    numberOfScrolls = 0

    while true do
    math.randomseed(os.time() )
    rand=math.random(1,3)
    random1 =math.random(20,25)
    random2 =math.random(90,95)
    random3 =math.random(192,197)

    pad = Controls.read()
    screen:clear()

    oldx = player.x
    oldy = player.y
    screen:clear()

    if pad:left() then
    character = car1
    player.x = player.x - 2
    end

    if pad:right() then
    character = car1
    XScrollPosition = XScrollPosition - 10
    if XScrollPosition < 0 then
    XScrollPosition = XScrollPosition + 480
    numberOfScrolls = numberOfScrolls + 1
    end
    end

    if pad:up() then
    character = car1
    player.y = player.y - 2
    end

    if pad:down() then
    character = car1
    player.y = player.y + 2
    end

    if pad:triangle() then
    dofile("index1.lua")
    end

    if pad:square() then
    Image:save("screenshot.png")
    end

    if pad:start() then
    break
    end


    if rand ==1 then
    car2.x = car2.x -10
    car3.x = car3.x-10
    car4.x = car3.x-10
    end

    if rand ==2 then
    car2.x = car2.x -10
    car3.x = car3.x-10
    car4.x = car3.x-10
    end

    if rand ==3 then
    car2.x = car2.x -10
    car3.x = car3.x-10
    car4.x = car3.x-10
    end

    if car2.x <=0 then
    car2.x =510
    car2.y = random1
    rands1()
    end

    if car3.x <=0 then
    car3.x = 520
    car3.y = random2
    rands2()
    end

    if car4.x <=0 then
    car4.x = 500
    car4.y = random3
    rands3()
    end

    screen:clear()

    screen:blit(XScrollPosition, 0, road)

    if XScrollPosition > 0 then
    screen:blit(XScrollPosition - 480, 0, road)
    else
    screen:blit(XScrollPosition + 480, 0, road)
    end

    if numberOfScrolls > 30 then
    dofile("eol.lua")
    end

    if player.x > 448 then
    Player.x = 448
    end
    if player.x < 0 then
    player.x = 0
    end

    if player.y > 240 then
    player.y = 240
    end
    if player.y < 0 then
    player.y = 0
    end


    detectCollision(player, car2)
    detectCollision(player, car3)
    detectCollision(player, car4)

    -----------blit background and player------------

    screen:blit(player.x, player.y, character)
    screen:blit(car2.x, car2.y, car2.pic)
    screen:blit(car3.x, car3.y, car3.pic)
    screen:blit(car4.x, car4.y, car4.pic)
    screen.flip()
    screen.waitVblankStart()
    end

    PSN ID: splodger15

  7. #27
    DCEmu Coder drEDN4wt's Avatar
    Join Date
    Aug 2005
    Location
    U.K.
    Posts
    172
    Rep Power
    0

    Default

    Quote Originally Posted by splodger15 View Post
    Error: SCRIPT.LUA:6: attempt to call method 'width' (a nil value)
    the 6 refers to line 6
    use an editor the shows the line numbers down the left margin, such as emeditor

    its trying to look up :width so its either
    character:width()
    or opponent.pic:width()

    and i dont see a declaration for opponent

    oh i do now.. :s

    at the moment you are using

    character:width()........... value is a record in a table
    opponent.pic:width......... value is a record in a table in a table
    car2Width....................... just a value

    you need to decide on which way your going to store widths and change them

  8. #28
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width())

    Could it be the bit i highlighted bold
    The close bracket on the end

    PSN ID: splodger15

  9. #29
    DCEmu Coder drEDN4wt's Avatar
    Join Date
    Aug 2005
    Location
    U.K.
    Posts
    172
    Rep Power
    0

    Default

    no its not the bracket , its what yaustar explains above

    try deleting
    ------------------player sprite loading--------------

    function rands1()
    rand2 = math.random(1,3)


    if rand2 ==1 then
    car2.pic = car2
    end

    if rand2 ==2 then
    car3.pic = car3
    end

    if rand2 ==3 then
    car4.pic = car4
    end
    end

    function rands2()
    rand3 = math.random(1,3)


    if rand3 ==1 then
    car2.pic = car2
    end

    if rand3 ==2 then
    car3.pic = car3
    end

    if rand3 ==3 then
    car4.pic = car4
    end
    end

    function rands3()
    rand4 = math.random(1,3)


    if rand4 ==1 then
    car2.pic = car2
    end

    if rand4 ==2 then
    car3.pic = car3
    end

    if rand4 ==3 then
    car4.pic = car4
    end
    end

  10. #30
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Quote Originally Posted by drEDN4wt View Post
    no its not the bracket , its what yaustar explains above

    try deleting
    I deleted the bit you said to delete but now i am getting.

    Also is there a text editor that has the numbers down the side so i can find it easier

    ------------------------------------------------------------------
    error: SCRIPT.LUA:144: attempt to call global 'rands1' (a nil value)

    PSN ID: splodger15

Page 3 of 4 FirstFirst 1234 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •