Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #### GLOBAL VARIABLES ####
- carX=200
- carXVelocity = 2
- carBattery = 100
- cloud1X=400
- cloud2X=430
- v=0
- v2=0
- radius=25
- radius2=235
- carBatteryLoss = 0.1
- windSpeed = 0
- carState = "FORWARD"
- carParkingTimer = 600
- ############################
- #### DRAWING FUNCTIONS ####
- def drawTree(treeX,treeY):
- noStroke()
- fill(244, 181, 65)
- rect(treeX,treeY,10,20)
- fill(146, 244, 66)
- ellipse(treeX+5,treeY-15,30,40)
- def drawPowerplant():
- stroke(0,0,0)
- fill(150, 144, 133)
- rect(200,215,60,30)
- fill(0,0,0)
- rect(240,185,10,30)
- fill(117, 113, 107)
- triangle(200,215,216,205,216,215)
- triangle(216,215,232,205,232,215)
- def drawWindmill(windmillX,windmillY):
- stroke(255,255,255)
- # line(windmillX,windmillY,windmillX+20,windmillY+1)
- # line(windmillX,windmillY,windmillX-11,windmillY+17)
- # line(windmillX,windmillY,windmillX-9,windmillY-18)
- line(windmillX,windmillY,windmillX,windmillY+40)
- def drawCar(carX, velocity):
- #Kører mod højre
- if carState == "FORWARD" or carState == "OUT_OF_FUEL" or carState == "PARKING":
- stroke(0,0,0)
- fill(237, 14, 14)
- rect(carX,275,60,17)
- fill(196, 7, 7)
- rect(carX-20,290,110,15)
- fill(0,0,0)
- ellipse(carX+3,305,15,15)
- ellipse(carX+60,305,15,15)
- #Kører mod venstre
- if carState == "BACKWARD":
- stroke(0,0,0)
- fill(237, 14, 14)
- rect(carX,275,60,17)
- fill(196, 7, 7)
- rect(carX-30,290,110,15)
- fill(0,0,0)
- ellipse(carX+3,305,15,15)
- ellipse(carX+60,305,15,15)
- def drawCloud(cloudX,cloudY):
- noStroke()
- fill(255,255,255)
- ellipse(cloudX,cloudY,20,15)
- ellipse(cloudX+35,cloudY,20,15)
- ellipse(cloudX+17,cloudY,40,25)
- def drawScene():
- noStroke()
- #Himmel
- background(128, 191, 237)
- #Græs
- fill(18, 158, 21)
- rect(0,230,400,170)
- #Vej
- fill(111, 119, 111)
- rect(0,260,400,70)
- #Vejlinjer
- stroke(255,255,255)
- line(0,290,30,290)
- line(40,290,70,290)
- line(80,290,110,290)
- line(120,290,150,290)
- line(160,290,190,290)
- line(200,290,230,290)
- line(240,290,270,290)
- line(280,290,310,290)
- line(320,290,350,290)
- line(360,290,390,290)
- def drawEverything():
- drawScene()
- drawCloud(cloud1X,70)
- drawCloud(cloud2X,100)
- drawCar(carX,1)
- drawTree(55,215)
- drawTree(85,230)
- drawPowerplant()
- drawWindmill(350,320)
- drawWindmill(300,340)
- ########## END DRAWING FUNCTIONS ##########
- ############ CONTROL FUNCTIONS ############
- def moveSun():
- global v2
- x= 200+cos(v2)*radius2
- y= 300-sin(v2)*radius2
- noStroke()
- fill(255, 255, 17)
- ellipse(x,y,25,25)
- v2=v2+0.003
- def moveCar():
- global carX
- global carXVelocity
- global carState
- global carParkingTimer
- if carState == "FORWARD":
- carX=carX+carXVelocity
- setCarBattery()
- if carX > 400:
- carState = "BACKWARD"
- if carBattery <= 0:
- carState = "OUT_OF_FUEL"
- elif carState == "BACKWARD":
- carX=carX-carXVelocity
- setCarBattery()
- if carX < 50:
- carState = "PARKING"
- carParkingTimer = 600
- if carBattery <= 0:
- carState = "OUT_OF_FUEL"
- elif carState == "OUT_OF_FUEL":
- carXVelocity = 0
- elif carState == "PARKING":
- carParkingTimer = carParkingTimer - 1
- if carParkingTimer <= 0:
- carParkingTimer = 0
- if carParkingTimer == 0:
- carState = "FORWARD"
- def moveClouds():
- global cloud1X
- global cloud2X
- cloud1X=cloud1X-0.5
- cloud2X=cloud2X-0.5
- if cloud1X < -100:
- cloud1X = 430
- if cloud2X < -70:
- cloud2X = 460
- def moveWindmill():
- stroke(255,255,255)
- global windSpeed
- global v
- #Vindemølle 1
- x= 350+cos(v)*radius
- y= 320-sin(v)*radius
- line(x,y,350,320)
- x2= 350+cos(v+2*PI/3)*radius
- y2= 320-sin(v+2*PI/3)*radius
- line(x2,y2,350,320)
- x3= 350+cos(v+4*PI/3)*radius
- y3= 320-sin(v+4*PI/3)*radius
- line(x3,y3,350,320)
- #Vindmølle 2
- x= 300+cos(v)*radius
- y= 340-sin(v)*radius
- line(x,y,300,340)
- x2= 300+cos(v+2*PI/3)*radius
- y2= 340-sin(v+2*PI/3)*radius
- line(x2,y2,300,340)
- x3= 300+cos(v+4*PI/3)*radius
- y3= 340-sin(v+4*PI/3)*radius
- line(x3,y3,300,340)
- v=v+windSpeed/500
- #Skift af vindmølle hastighed
- if frameCount % 60 == 0:
- windSpeed = random(0,30)
- ############ END CONTROL FUNCTIONS #############
- ########### STATUS AND INDICATORS ##############
- def writeWindSpeed():
- fill(0,0,0)
- textSize(10)
- text("windspeed: " + str(windSpeed),300,390)
- def writeFrameCount():
- fill(0,0,0)
- text(frameCount,350,20)
- if frameCount % 60 == 0:
- print(frameCount)
- def writeCarBattery():
- fill(0,0,0)
- textSize(15)
- text("Battery: " + str(carBattery), 20, 40)
- def writeCarParkingTimer():
- fill(0,0,0)
- textSize(15)
- text("Car Parking Timer: " + str(carParkingTimer),20,60)
- def writeEverything():
- writeWindSpeed()
- writeFrameCount()
- writeCarBattery()
- writeCarParkingTimer()
- ########### END STATUS AND INDICATORS ############
- ############ CAR BATTERY ###############
- def setCarBattery():
- global carXVelocity
- global carBattery
- global carBatteryLoss
- if carBattery <= 0:
- carXVelocity = 0
- carBatteryLoss = 0
- carBattery = 0
- carBattery = carBattery - carBatteryLoss
- def keyPressed():
- global carBattery
- if key == 'c':
- carBattery = carBattery + 0.3
- if carBattery > 100:
- carBattery = 100
- ######### END CAR BATTERY ##############
- ########### MAIN PROGRAM ##############
- def setup():
- size(400,400)
- def draw():
- drawEverything()
- moveSun()
- moveCar()
- moveClouds()
- moveWindmill()
- writeEverything()
- ##########################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement