试图用一些比较游戏为零 [英] Attempt to compare nil with number in game

查看:119
本文介绍了试图用一些比较游戏为零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿,大家好我要完成我的比赛我是一个独立开发者及ii我试图完成电晕SDK我的应用程序和我不断收到这个恼人的错误信息。该消息得到的是尝试用数字restart.lua 9比较无我没有线索如何解决这个问题我尝试每一件事情,但没有任何工程。当我运行我的code和我死了,第一次和重新启动游戏它的工作不错,但第二次的球员死了,我尝试重新启动游戏,我收到此错误信息。这是code

好吧,我想清楚这一点,所以我要发布我的洞code在比赛还有2文件,以便你们能理解我要在。

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

- 的main.lua

  ---当地的标题栏=没有标题栏
    -  requirs物理

 --variable来保存我们的游戏得分
   当地分数= 0


    本地物理=需要物理
   physics.start()

   要求精灵

    当地的故事情节=要求(故事板)
      地方场面= storyboard.newScene()


    功能情景:createScene(事件)
     当地screenGroup = self.view

     -  背景
     当地背景= display.newImage(background01.png)
     screenGroup:插入(背景)

     - 当地的背景= display.newImageRect(background01.png,570,360)

 --ship = display.newImage(帝国2.png)

 TOP1 = display.newImage(invisable tile.png)
 TOP1:setReferencePoint(display.BottomLeftReferencePoint)
 top1.x = 0
 top1.y = -200
 physics.addBody(TOP1,静,{密度= 0.1,反弹= 0.1,摩擦= 0.2})
 screenGroup:插入(TOP1)


 TOP2 = display.newImage(invisable tile.png)
 TOP2:setReferencePoint(display.BottomLeftReferencePoint)
 top2.x = 0
 top2.y = 400
 physics.addBody(TOP2,静,{密度= 0.1,反弹= 0.1,摩擦= 0.2})
 screenGroup:插入(TOP2)






 月亮= display.newImage(moon.png)
 月亮:setReferencePoint(display.BottomLeftReferencePoint)
 moon.x = 400
 moon.y = 100
 moon.speed = 4
screenGroup:插入(明月)

   moon2 = display.newImage(moon.png)
   moon2:setReferencePoint(display.BottomLeftReferencePoint)
   moon2.x = 1090
   moon2.y = 100
   moon2.speed = 4
   screenGroup:插入(moon2)

     - 此副本的下一个滚动secne --empire应该改变varable
     empire3 = display.newImage(empire1.png)
     empire3:setReferencePoint(display.BottomLeftReferencePoint)
     empire3.x = 1400
     empire3.y = 450
     empire3.speed = 7
  screenGroup:插入(empire3)

    - 当地empire2 = display.newImage(帝国2.png)
    -  empire2:setReferencePoint(display.BottomLeftReferencePoint)
    -  empire2.x = 400
    -  empire2.y = 400
    -  empire2.speed = 10

     - 当地empire4 = display.newImage(帝国2.png) - 帝国2副本
     -  empire4:setReferencePoint(display.BottomLeftReferencePoint)
   --empire4.x = 1090
    -  empire4.y = 400
     -  empire4.speed = 10
     - 此副本的下一个滚动secne

    empire1 = display.newImage(empire1.png)
   empire1:setReferencePoint(display.BottomLeftReferencePoint)
   empire1.x = 570
   empire1.y = 450
   empire1.speed = 7
     screenGroup:插入(empire1)

    jetSpriteSheet = sprite.newSpriteSheet(jet11.png,50,17)
    jetSprites = sprite.newSpriteSet(jetSpriteSheet,1,4)
    sprite.add(jetSprites,喷气机,1,4,5000,0) - 定时器
     喷气= sprite.newSprite(jetSprites)
    jet.y = 40
    jet.x = -80
    飞机:prepare(喷气机)
   jet.collided = FALSE
    飞机:玩()
    physics.addBody(喷气,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
    screenGroup:插入(喷气)
     jetIntro = transition.to(喷气,{时间= 6000,X = 100,的onComplete = jetReady})

    explosionSpriteSheet = sprite.newSpriteSheet(explosion.png,24,23)
    explosionSprites = sprite.newSpriteSet(explosionSpriteSheet,1,8)
    sprite.add(explosionSprites,爆炸,1,8,2000,1)
    爆炸= sprite.newSprite(explosionSprites)
    explosion.x = 100
    explosion.y = 100
    爆炸:prepare(爆炸)
    爆炸:播放()
     explosion.isVisible = FALSE
      -  physics.addBody(喷气,动态,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
    screenGroup:插入(爆炸)



    mine1 = display.newImage(rocket01.png)
    mine1.x = 500
    mine1.y = 200
    mine1.speed =的Math.random(2,6)
    -  mine1.initY = mine1.y
   -  mine1.amp =的Math.random(20100)
    -  mine1.angle =的Math.random(1,360)
    physics.addBody(mine1,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
    screenGroup:插入(mine1)

    mine2 = display.newImage(missles.png)
    mine2.y = 100  - 的Math.random(1,100)
    mine2.x = 1090
    mine2.speed =的Math.random(2,6)
 -  mine2.amp =的Math.random(2,6)
   --mine2.initY = mine2.y

    physics.addBody(mine2,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
    screenGroup:插入(mine2)



    mine3 = display.newImage(missles.png)
    mine3.y = 100
    mine3.x = 500
    mine3.speed =的Math.random(2,6)
    -  mine3.initY = mine1.y
      -  mine3.amp =的Math.random(20100)
    mine3.angle =的Math.random(1,360)

    physics.addBody(mine3,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
    screenGroup:插入(mine3)

  mine4 = display.newImage(rocket01.png)
    mine4.y = 100
    mine4.x = 500
    mine4.speed =的Math.random(2,6)
    -  mine3.initY = mine1.y
   -  mine3.amp =的Math.random(20100)
 mine3.angle =的Math.random(1,360)
  screenGroup:插入(mine4)






 physics.addBody(mine4,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
 screenGroup:插入(mine4)

   coin04 = display.newImage(coin04.png)
   coin04.y = 100
   coin04.x = 500
   coin04.speed =的Math.random(2,6)
   coin04.initY = mine1.y
   coin04.amp =的Math.random(20100)
  coin04.angle =的Math.random(1,360)

 physics.addBody(coin04,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
 screenGroup:插入(coin04)




  rocket02 = display.newImage(rocket02.png)
  rocket02.y = 100
  rocket02.x = 500
  rocket02.speed =的Math.random(2,6)
  rocket02.initY = mine1.y
  rocket02.amp =的Math.random(20100)
  rocket02.angle =的Math.random(1,360)

 physics.addBody(rocket02,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(rocket02)


  rocket03 = display.newImage(rocket02.png)
  rocket03.y = 100
  rocket03.x = 500
  rocket03.speed =的Math.random(2,6)
  rocket03.initY = mine1.y
  rocket03.amp =的Math.random(20100)
  rocket03.angle =的Math.random(1,360)

 physics.addBody(rocket03,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(rocket03)


  rocket04 = display.newImage(rocket02.png)
  rocket04.y = 100
  rocket04.x = 500
  rocket04.speed =的Math.random(2,6)
  rocket04.initY = mine1.y
  rocket04.amp =的Math.random(20100)
  rocket04.angle =的Math.random(1,360)

 physics.addBody(rocket04,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(rocket04)


 ball01 = display.newImage(ball01.png)
  ball01.y = 100
  ball01.x = 500
  ball01.speed =的Math.random(2,6)
  ball01.initY = mine1.y
  ball01.amp =的Math.random(20100)
  ball01.angle =的Math.random(1,360)
  旋转= 2
 physics.addBody(ball01,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(ball01)



  ball02 = display.newImage(ball01.png)
  ball02.y = 100
  ball02.x = 500
  ball02.speed =的Math.random(2,6)
  ball02.initY = mine1.y
  ball02.amp =的Math.random(20100)
  ball02.angle =的Math.random(1,360)
  旋转= 2
 physics.addBody(ball02,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(ball02)


   ball03 = display.newImage(ball02.png)
  ball03.y = 100
  ball03.x = 500
  ball03.speed =的Math.random(2,6)
  --ball03.initY = mine1.y
  -  ball03.amp =的Math.random(20100)
  ball03.angle =的Math.random(1,360)
  旋转= 2
 physics.addBody(ball03,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(ball03)


  ball04 = display.newImage(ball02.png)
  ball04.y = 100
  ball04.x = 500
  ball04.speed =的Math.random(2,6)
  ball04.initY = mine1.y
  ball04.amp =的Math.random(20100)
  ball04.angle =的Math.random(1,360)
  旋转= 2
 physics.addBody(ball04,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})

 screenGroup:插入(ball04)


  coin01 = display.newImage(coin02.png)
  coin01.y = 100
  coin01.x = 500
   coin01.speed =的Math.random(2,6)
  coin01.initY = mine1.y
   coin01.amp =的Math.random(20100)
   coin01.angle =的Math.random(1,360)



 physics.addBody(coin01,静,{密度= 0.1,反弹= 0.1,摩擦= 2,半径= 12})
 screenGroup:插入(coin01)




    scoreText = display.newText(人评分:..评分,0,0,showcardgothic,14)

scoreText:setTextColor(225225225)
scoreText.x = 10
scoreText.y = 20
screenGroup:插入(scoreText)


暂停= display.newImage(pause.png)
pause.x = 480
pause.y = 289
screenGroup:插入(暂停)



 结束 - 创建场景结束



本地函数scoreUpdate()

 得分=得分+10
 scoreText.text =分数:..得分
--- scoreText:setTextColor(225225225)
 -  scoreText:setReferencePoint(display.CenterLeftReferencePoint)
 scoreText.x = 10
 scoreText.y = 20

结束

 定时器1 = timer.performWithDelay(1000,scoreUpdate, -  1)



 功能pause01(事件)
 如果event.phase ==开始,然后
  --print喜

  功能jetReady()
    jet.bodyType =静态
结束

storyboard.gotoScene(暂停菜单,淡入淡出,400)

 结果= timer.pause(定时器1)
打印(剩余时间)

   结束
 结束
 

这code是低于大胆是code多数民众赞成让问题希望你们能告诉我什么是错。

  ***印刷通过***

 ***功能scrollSpace(个体经营,事件)
 如果self.x< -900那么
  self.x = 800
其他
self.x = self.x  -  self.speed
 结束
    结束***


  本地函数moveMines(个体经营,事件)
  如果self.x< -900那么
   self.x = 489 --800

   self.y =的Math.random(90220)
   self.x = 500
   self.speed =的Math.random(2,6)
 -  self.amp =的Math.random(20100)
 -  self.angle =的Math.random(1,360)

 其他
    self.x = self.x  -  self.speed
     -  self.angle = self.angle + .1
     -  self.y = self.amp * math.sin(self.angle)+ self.initY
        结束
    结束



 本地函数币(自我,事件)
  如果self.x< -900那么
   self.x = 800

   self.y =的Math.random(90,100)
   self.x = 500
   self.speed =的Math.random(2,6)
  self.amp =的Math.random(20100)
 self.angle =的Math.random(1,360)

    其他
    self.x = self.x  -  self.speed
     self.angle = self.angle + .1
     self.y = self.amp * math.sin(self.angle)+ self.initY
        结束
    结束

       -  moveMissile1


   功能jetReady()
    jet.bodyType =动态
    结束


   功能activateJets(个体经营,事件)
     自:applyForce(0,-1.5,self.x,self.y)
    结束

    功能触摸屏(事件)
    --print(触摸)
    如果event.phase ==开始,然后
    jet.enterFrame = activateJets
    运行时间:调用addEventListener(一个enterFrame,喷)
     结束

   如果event.phase ==结束,那么
   --print(结束)
   运行时间:removeEventListener(一个enterFrame,喷)
   结束

   结束

   功能GAMEOVER()
   storyboard.gotoScene(重新启动,变脸,400)
   结束

   函数explode()

    explosion.x = jet.x
    explosion.y = jet.y
    explosion.isVisible =真
    爆炸:播放()
    jet.isVisible = FALSE
    timer.performWithDelay(3000,GAMEOVER,1)

   结束


   功能onCollision(事件)
    如果event.phase ==开始,然后
      如果jet.collided == false,那么
        jet.collided =真
        jet.bodyType =静态
         结果= timer.pause(定时器1)
        爆炸()
        --storyboard.gotoScene(重新启动,变脸,400)
      结束
    结束

    结束


   功能情景:enterScene(事件)




  moon.enterFrame = scrollSpace
 运行时间:调用addEventListener(一个enterFrame,月亮)

     暂停:的addEventListener(接触,pause01)

     empire3.enterFrame = scrollSpace
     运行时间:调用addEventListener(一个enterFrame,empire3)

     moon2.enterFrame = scrollSpace
     运行时间:调用addEventListener(一个enterFrame,moon2)

    mine1.enterFrame = moveMines
    运行时间:调用addEventListener(一个enterFrame,mine1)

     mine2.enterFrame = moveMines
         运行时间:调用addEventListener(一个enterFrame,mine2)

     mine3.enterFrame = moveMines
       运行时间:调用addEventListener(一个enterFrame,mine3)

     mine4.enterFrame = moveMines
    运行时间:调用addEventListener(一个enterFrame,mine4)

   rocket02 .enterFrame =硬币
     运行时间:调用addEventListener(一个enterFrame,rocket02)

     coin04.enterFrame =硬币
    运行时间:调用addEventListener(一个enterFrame,coin04)

     coin01.enterFrame =硬币
    运行时间:调用addEventListener(一个enterFrame,coin01)

    rocket03 .enterFrame =硬币
    运行时间:调用addEventListener(一个enterFrame,rocket03)

     rocket04 .enterFrame = moveMines
    运行时间:调用addEventListener(一个enterFrame,rocket04)


   ball01 .enterFrame =硬币
    运行时间:调用addEventListener(一个enterFrame,ball01)

   ball02 .enterFrame =硬币
    运行时间:调用addEventListener(一个enterFrame,ball02)

     ball03 .enterFrame = moveMines
    运行时间:调用addEventListener(一个enterFrame,ball03)

    ball04 .enterFrame =硬币
   运行时间:调用addEventListener(一个enterFrame,ball04)

  -  empire2.enterFrame = scrollSpace
 --Runtime:的addEventListener(一个enterFrame,empire2)

     -  empire4.enterFrame = scrollSpace
 - 运行时:的addEventListener(一个enterFrame,empire4)

 empire1.enterFrame = scrollSpace
 运行时间:调用addEventListener(一个enterFrame,empire1)

 运行时间:调用addEventListener(摸,触摸屏)

  运行时间:调用addEventListener(碰撞,onCollision)


  结束


  功能情景:exitScene(事件)

  运行时间:removeEventListener(摸,触摸屏)
  运行时间:removeEventListener(一个enterFrame,月亮)
  运行时间:removeEventListener(一个enterFrame,empire3)
  运行时间:removeEventListener(一个enterFrame,moon2)
  运行时间:removeEventListener(一个enterFrame,mine1)
  运行时间:removeEventListener(一个enterFrame,mine2)
  运行时间:removeEventListener(一个enterFrame,mine3)
  运行时间:removeEventListener(一个enterFrame,mine4)
  运行时间:removeEventListener(一个enterFrame,coin04)
  运行时间:removeEventListener(一个enterFrame,coin01)
  运行时间:removeEventListener(一个enterFrame,empire1)
  运行时间:removeEventListener(碰撞,onCollision)
  运行时间:removeEventListener(一个enterFrame,rocket02)
  结束

   功能情景:destroyScene(事件)

   结束




     场景:的addEventListener(createScene,场景)
     场景:的addEventListener(enterScene,场景)
     场景:的addEventListener(exitScene,场景)
     场景:的addEventListener(destroyScene,场景)

     返回现场
 

解决方案

显然,self.x不存在。请确保您初始化前的地方,比较在行9.我认为你是幸运的,这类漏洞通常是容易解决的。

如果您仍然无法搞清楚,张贴在那里你先初始化self.x,可能会是你错过了。

hey guys i am about to finish my game i am a indie developer and i i am trying to finish my app in corona sdk and i keep getting this annoying error message. The message is get is "Attempt to compare nil with number restart.lua 9 " i don't have a clue how to fix this i try every thing but nothing works. when i run my code and i die for the first time and restart the game it work fine but the second time the player die ,and i try to restart the game i get this error message. this is the code

okay i want to be clear about this so i am going to post my hole code in the game 2 file so you guys can understand what i am going at.

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

-- main.lua

  ---local  titlebar = "no title bar"
   -- requirs physics 

 --variable to hold our game's score
   local score = 0


    local physics = require "physics"
   physics.start() 

   require "sprite"

    local storyboard = require("storyboard")
      local scene = storyboard.newScene()


    function scene:createScene(event)
     local screenGroup = self.view

    -- background 
     local background = display.newImage("background01.png")
     screenGroup:insert(background)

    -- local background = display.newImageRect( "background01.png", 570, 360 )

 --ship =display.newImage("empire 2.png")

 top1 = display.newImage("invisable tile.png")
 top1:setReferencePoint(display.BottomLeftReferencePoint)
 top1.x=0
 top1.y= -200
 physics.addBody(top1, "static", {density=.1,bounce=0.1, friction=.2})
 screenGroup:insert(top1)


 top2 = display.newImage("invisable tile.png")
 top2:setReferencePoint(display.BottomLeftReferencePoint)
 top2.x =0
 top2.y= 400
 physics.addBody(top2, "static", {density=.1,bounce=0.1, friction=.2})
 screenGroup:insert(top2)






 moon = display.newImage("moon.png")
 moon:setReferencePoint(display.BottomLeftReferencePoint)
 moon.x =400
 moon.y=100
 moon.speed = 4
screenGroup:insert(moon)

   moon2 = display.newImage("moon.png")
   moon2: setReferencePoint(display.BottomLeftReferencePoint)
   moon2.x =1090
   moon2.y=100
   moon2.speed = 4
   screenGroup:insert(moon2)

    -- this copy to the next scroll secne --empire should be change varable
     empire3 = display.newImage("empire1.png")
     empire3: setReferencePoint(display.BottomLeftReferencePoint)                   
     empire3.x =1400
     empire3.y=450
     empire3.speed = 7
  screenGroup:insert(empire3)

   -- local empire2 = display.newImage("empire 2.png")
   --  empire2: setReferencePoint(display.BottomLeftReferencePoint)
   -- empire2.x = 400
   -- empire2.y= 400
   -- empire2.speed = 10

    -- local empire4 = display.newImage("empire 2.png") -- copy of empire 2 
    -- empire4: setReferencePoint(display.BottomLeftReferencePoint)
   --empire4.x = 1090
   -- empire4.y= 400
    -- empire4.speed = 10
    -- this copy to the next scroll secne 

    empire1 =display.newImage("empire1.png")
   empire1: setReferencePoint(display.BottomLeftReferencePoint)
   empire1.x =570
   empire1.y= 450
   empire1.speed = 7
     screenGroup:insert(empire1)

    jetSpriteSheet = sprite.newSpriteSheet("jet11.png",50,17)
    jetSprites = sprite.newSpriteSet(jetSpriteSheet,1,4)
    sprite.add(jetSprites,"jets",1,4,5000,0)-- timer
     jet=sprite.newSprite(jetSprites)
    jet.y = 40
    jet.x = -80 
    jet:prepare("jets")
   jet.collided = false
    jet:play()
    physics.addBody(jet, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
    screenGroup:insert(jet)
     jetIntro = transition.to(jet,{time=6000, x=100, onComplete=jetReady})

    explosionSpriteSheet = sprite.newSpriteSheet("explosion.png", 24, 23)
    explosionSprites = sprite.newSpriteSet(explosionSpriteSheet, 1, 8)
    sprite.add(explosionSprites, "explosions", 1, 8, 2000, 1)
    explosion = sprite.newSprite(explosionSprites)
    explosion.x = 100
    explosion.y = 100
    explosion:prepare("explosions")
    explosion:play()
     explosion.isVisible = false
     -- physics.addBody(jet, "dynamic", {density=.1, bounce=0.1, friction=.2, radius=12})
    screenGroup:insert(explosion)



    mine1 = display.newImage("rocket01.png")
    mine1.x = 500
    mine1.y = 200
    mine1.speed = math.random(2,6)
   -- mine1.initY = mine1.y
  --  mine1.amp = math.random(20,100)
   -- mine1.angle = math.random(1,360)
    physics.addBody(mine1, "static", {density=.1, bounce=0.1, friction=.2, radius=12})
    screenGroup:insert(mine1)

    mine2 = display.newImage("missles.png")
    mine2.y = 100--math.random (1,100)
    mine2.x = 1090
    mine2.speed = math.random(2,6)
-- mine2.amp = math.random(2,6)     
   --mine2.initY = mine2.y

    physics.addBody(mine2, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
    screenGroup:insert(mine2)



    mine3 = display.newImage("missles.png")
    mine3.y = 100
    mine3.x = 500
    mine3.speed = math.random(2,6)
   -- mine3.initY = mine1.y
     --  mine3.amp   = math.random(20,100)
    mine3.angle = math.random(1,360)    

    physics.addBody(mine3, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
    screenGroup:insert(mine3)

  mine4 = display.newImage("rocket01.png")
    mine4.y = 100
    mine4.x = 500
    mine4.speed = math.random(2,6)
   -- mine3.initY = mine1.y
  --  mine3.amp   = math.random(20,100)
 mine3.angle = math.random(1,360)   
  screenGroup:insert(mine4)






 physics.addBody(mine4, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
 screenGroup:insert(mine4)

   coin04 = display.newImage("coin04.png")
   coin04.y = 100
   coin04.x = 500
   coin04.speed = math.random(2,6)
   coin04.initY = mine1.y
   coin04.amp   = math.random(20,100)
  coin04.angle = math.random(1,360) 

 physics.addBody(coin04, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
 screenGroup:insert(coin04)




  rocket02 = display.newImage("rocket02.png")
  rocket02.y = 100
  rocket02.x = 500
  rocket02.speed = math.random(2,6)
  rocket02.initY = mine1.y
  rocket02.amp   = math.random(20,100)
  rocket02.angle = math.random(1,360)   

 physics.addBody(rocket02, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(rocket02)


  rocket03 = display.newImage("rocket02.png")
  rocket03.y = 100
  rocket03.x = 500
  rocket03.speed = math.random(2,6)
  rocket03.initY = mine1.y
  rocket03.amp   = math.random(20,100)
  rocket03.angle = math.random(1,360)   

 physics.addBody(rocket03, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(rocket03)


  rocket04 = display.newImage("rocket02.png")
  rocket04.y = 100
  rocket04.x = 500
  rocket04.speed = math.random(2,6)
  rocket04.initY = mine1.y
  rocket04.amp   = math.random(20,100)
  rocket04.angle = math.random(1,360)   

 physics.addBody(rocket04, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(rocket04)


 ball01 = display.newImage("ball01.png")
  ball01.y = 100
  ball01.x = 500
  ball01.speed = math.random(2,6)
  ball01.initY = mine1.y
  ball01.amp   = math.random(20,100)
  ball01.angle = math.random(1,360) 
  rotation = 2 
 physics.addBody(ball01, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(ball01)



  ball02 = display.newImage("ball01.png")
  ball02.y = 100
  ball02.x = 500
  ball02.speed = math.random(2,6)
  ball02.initY = mine1.y
  ball02.amp   = math.random(20,100)
  ball02.angle = math.random(1,360) 
  rotation = 2 
 physics.addBody(ball02, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(ball02)


   ball03 = display.newImage("ball02.png")
  ball03.y = 100
  ball03.x = 500
  ball03.speed = math.random(2,6)
  --ball03.initY = mine1.y
 -- ball03.amp   = math.random(20,100)
  ball03.angle = math.random(1,360) 
  rotation = 2 
 physics.addBody(ball03, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(ball03)


  ball04 = display.newImage("ball02.png")
  ball04.y = 100
  ball04.x = 500
  ball04.speed = math.random(2,6)
  ball04.initY = mine1.y
  ball04.amp   = math.random(20,100)
  ball04.angle = math.random(1,360) 
  rotation = 2 
 physics.addBody(ball04, "static", {density=.1,bounce=0.1, friction=.2,radius=12})

 screenGroup:insert(ball04)


  coin01 = display.newImage("coin02.png")
  coin01.y = 100
  coin01.x = 500
   coin01.speed = math.random(2,6)
  coin01.initY = mine1.y
   coin01.amp   = math.random(20,100)
   coin01.angle = math.random(1,360)    



 physics.addBody(coin01, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
 screenGroup:insert(coin01)




    scoreText = display.newText("score: " .. score, 0, 0, "showcardgothic", 14)

scoreText:setTextColor(225,225,225)
scoreText.x = 10
scoreText.y = 20
screenGroup:insert(scoreText)


pause = display.newImage("pause.png")
pause.x = 480
pause.y = 289
screenGroup:insert(pause)



 end  -- end of create scene



local function scoreUpdate()

 score =score +10 
 scoreText.text = "score:"..score
---scoreText:setTextColor(225,225,225)
-- scoreText:setReferencePoint(display.CenterLeftReferencePoint)
 scoreText.x = 10 
 scoreText.y =20    

end

 timer1 = timer.performWithDelay( 1000, scoreUpdate, - 1 )



 function pause01 (event)
 if event.phase =="began" then 
  --print "hi"

  function jetReady()
    jet.bodyType = "static"
end

storyboard.gotoScene("pause menu","crossFade",400)  

 result = timer.pause( timer1 )
print( "Time remaining is ")

   end
 end 

this code that is below that is bold is the code that's giving problem hope you guys can tell me whats wrong..

***print "passed"***

 ***function scrollSpace(self,event)
 if self.x  < -900 then
  self.x = 800
else 
self.x = self.x - self.speed
 end 
    end***


  local function moveMines(self,event)
  if self.x  < -900 then
   self.x = 489            --800

   self.y = math.random(90,220)
   self.x = 500
   self.speed = math.random(2,6)
--  self.amp = math.random(20,100)
--  self.angle = math.random(1,360)

 else 
    self.x = self.x - self.speed
    -- self.angle = self.angle + .1
    -- self.y = self.amp * math.sin(self.angle)+ self.initY
        end 
    end



 local function coins(self,event)
  if self.x  < -900 then
   self.x = 800

   self.y = math.random(90,100)
   self.x = 500
   self.speed = math.random(2,6)
  self.amp = math.random(20,100)
 self.angle = math.random(1,360)

    else 
    self.x = self.x - self.speed
     self.angle = self.angle + .1
     self.y = self.amp * math.sin(self.angle)+ self.initY
        end 
    end 

      --     moveMissile1


   function jetReady()
    jet.bodyType = "dynamic"
    end


   function activateJets(self,event)
     self:applyForce(0,-1.5,self.x,self.y)
    end

    function touchScreen(event)
    --print("touch")
    if event.phase == "began"then
    jet.enterFrame = activateJets 
    Runtime:addEventListener ("enterFrame",jet)
     end

   if event.phase == "ended"then
   --print ("ended")
   Runtime:removeEventListener ("enterFrame",jet)
   end

   end

   function gameOver()
   storyboard.gotoScene("restart", "fade", 400)
   end

   function explode()

    explosion.x = jet.x
    explosion.y = jet.y
    explosion.isVisible = true
    explosion:play()
    jet.isVisible = false
    timer.performWithDelay(3000, gameOver, 1)

   end


   function onCollision(event)
    if event.phase == "began" then
      if jet.collided == false then 
        jet.collided = true
        jet.bodyType = "static"
         result =  timer.pause(timer1 )
        explode()
        --storyboard.gotoScene("restart", "fade", 400)
      end
    end

    end


   function scene:enterScene(event)




  moon.enterFrame = scrollSpace
 Runtime:addEventListener ("enterFrame",moon)

     pause:addEventListener("touch",pause01)

     empire3.enterFrame = scrollSpace
     Runtime:addEventListener ("enterFrame",empire3)

     moon2.enterFrame = scrollSpace
     Runtime:addEventListener ("enterFrame",moon2)

    mine1.enterFrame = moveMines
    Runtime:addEventListener ("enterFrame",mine1)

     mine2.enterFrame = moveMines
         Runtime:addEventListener ("enterFrame",mine2)

     mine3.enterFrame = moveMines
       Runtime:addEventListener ("enterFrame",mine3)

     mine4.enterFrame = moveMines
    Runtime:addEventListener ("enterFrame",mine4)   

   rocket02 .enterFrame = coins
     Runtime:addEventListener ("enterFrame",rocket02)   

     coin04.enterFrame = coins
    Runtime:addEventListener ("enterFrame",coin04)

     coin01.enterFrame = coins
    Runtime:addEventListener ("enterFrame",coin01)  

    rocket03 .enterFrame = coins
    Runtime:addEventListener ("enterFrame",rocket03)

     rocket04 .enterFrame = moveMines
    Runtime:addEventListener ("enterFrame",rocket04)


   ball01 .enterFrame = coins
    Runtime:addEventListener ("enterFrame",ball01)

   ball02 .enterFrame = coins
    Runtime:addEventListener ("enterFrame",ball02)  

     ball03 .enterFrame = moveMines
    Runtime:addEventListener ("enterFrame",ball03)

    ball04 .enterFrame = coins
   Runtime:addEventListener ("enterFrame",ball04)   

 -- empire2.enterFrame = scrollSpace
 --Runtime:addEventListener ("enterFrame",empire2)

    --  empire4.enterFrame = scrollSpace
-- Runtime:addEventListener ("enterFrame",empire4)

 empire1.enterFrame = scrollSpace
 Runtime:addEventListener ("enterFrame",empire1)

 Runtime:addEventListener("touch",touchScreen)

  Runtime:addEventListener("collision",onCollision) 


  end 


  function scene:exitScene(event)

  Runtime:removeEventListener("touch",touchScreen)
  Runtime:removeEventListener ("enterFrame",moon)
  Runtime:removeEventListener ("enterFrame",empire3)
  Runtime:removeEventListener ("enterFrame",moon2)
  Runtime:removeEventListener ("enterFrame",mine1)
  Runtime:removeEventListener ("enterFrame",mine2)
  Runtime:removeEventListener ("enterFrame",mine3)
  Runtime:removeEventListener ("enterFrame",mine4)
  Runtime:removeEventListener ("enterFrame",coin04)
  Runtime:removeEventListener ("enterFrame",coin01)
  Runtime:removeEventListener ("enterFrame",empire1)
  Runtime:removeEventListener("collision",onCollision)  
  Runtime: removeEventListener ("enterFrame",rocket02)
  end

   function scene:destroyScene(event)

   end




     scene:addEventListener("createScene",scene)
     scene:addEventListener("enterScene",scene) 
     scene:addEventListener("exitScene",scene) 
     scene:addEventListener("destroyScene",scene) 

     return scene

解决方案

Apparently, self.x doesn't exist. Make sure that you initialize it somewhere before that compare at line 9. I think you are lucky, these kinds of bugs are usually solved easily..

If you still can't figure it out, post where you first initialize self.x, could be something you are missing.

这篇关于试图用一些比较游戏为零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆