Page 2 of 4 FirstFirst 1234 LastLast
Results 11 to 20 of 33

Thread: Lua problems

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

    Default

    Would i use it like this

    ------------------------------------------------------------------
    car2=Image.load("images/car2.PNG")
    car2=car2

    PSN ID: splodger15

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

    Default

    as before.....

    you havent declared road

    instead of;
    background=Image.load("images/road.PNG")

    use;
    road=Image.load("images/road.PNG")
    background=road

    maybe you dont need background at all.
    do you ever forget where you put things or peoples names?

    don't use car2=car2 ever

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

    Default

    Here is my script so far,but i seemed to get this error now:

    --------------------------------------------------------------
    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)
    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=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 = car2

    car3 = {}
    car3.x = 228
    car3.y = 20
    car3Height = 63
    car3Width = 33
    car3.pic = car3

    car4 = {}
    car4.x = 28
    car4.y = 20
    car4Height = 63
    car4Width = 33
    car4.pic = car4

    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

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

    Default

    You are assigning an object to a member of itself:
    car2=Image.load("images/car2.PNG") -- car2 is an image
    car2 = {} -- car2 is no longer an image and now a table
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = car2 -- car2.pic is now car2. Major logic flaw here.

  5. #15
    PSP Coder
    Join Date
    Mar 2006
    Location
    America
    Age
    33
    Posts
    25
    Rep Power
    0

    Default

    maybe put some stuff after(with all the "if"s and everything) "while true do"??(especially the "rand"s)

    PSPoggle v0.3
    AOTM Morrowind Mod
    "Age is such an ignorant thing, judge no one by it."

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

    Default

    How can i fix this

    Thanks

    PSN ID: splodger15

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

    Default

    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.

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

    Default

    How many problems are there iam am still getting this :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)
    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")

    ----------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 = car2

    car3 = {}
    car3.x = 228
    car3.y = 20
    car3Height = 63
    car3Width = 33
    car3.pic = car3

    car4 = {}
    car4.x = 28
    car4.y = 20
    car4Height = 63
    car4Width = 33
    car4.pic = car4

    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

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

    Default

    car2, car3 and car4 .pics are not images. Therefore when you try and call the width() function from them, it is a nil value.

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

    Default

    Can someone please Explain how to fix this issue thanks

    PSN ID: splodger15

Page 2 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
  •