Advertisement
Szczepan86

Godot - gra

Mar 24th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. extends Node2D
  2.  
  3. # ustawienie predkosci pilki
  4. const PREDKOSC_PILKI = 200
  5. # ustawienie predkosci gracza
  6. const PREDKOSC_GRACZA = 200
  7.  
  8. # zmienne
  9. var rozmiarEkranu
  10. var rozmiarPaletki
  11. var kierunekPilki
  12. var wynikLewy
  13. var wynikPrawy
  14.  
  15. func _ready():
  16. # Called every time the node is added to the scene.
  17. # Initialization here
  18. print("HELLO WORLD")
  19.  
  20. # pobierz rozmiar ekranu
  21. rozmiarEkranu = get_viewport_rect().size
  22.  
  23. # pobierz rozmiar paletki
  24. rozmiarPaletki = get_node("prawyGracz").texture.get_size()
  25.  
  26. # ustaw początkowy kierunek piłki
  27. kierunekPilki = Vector2(1.0, 0.0)
  28.  
  29. # ustaw poczatkowy wynik
  30. wynikLewy = 0
  31. wynikPrawy = 0
  32. get_node("wynikLewy").bbcode_text = "[left]" + str(wynikLewy)
  33. get_node("wynikPrawy").bbcode_text = "[right]" + str(wynikPrawy)
  34.  
  35. pass
  36.  
  37. func _process(delta):
  38. # pobierz pozycje pilki i przypisz do zmiennej
  39. var pozycjaPilki = get_node("pilka").position
  40. # pobierz pozycje prawego i lewego gracza i przypisz je do zmiennej
  41. var pozycjaPrawegoGracza = get_node("prawyGracz").position
  42. var pozycjaLewegoGracza = get_node("lewyGracz").position
  43. # tworzenie kolidera dla graczy
  44. var kolizjaPrawegoGracza = Rect2(pozycjaPrawegoGracza - rozmiarPaletki * 0.5, rozmiarPaletki)
  45. var kolizjaLewegoGracza = Rect2(pozycjaLewegoGracza - rozmiarPaletki * 0.5, rozmiarPaletki)
  46.  
  47. # zaktualizuj zmienna z pozycja pilki
  48. pozycjaPilki.x = pozycjaPilki.x + PREDKOSC_PILKI * delta * kierunekPilki.x
  49. pozycjaPilki.y = pozycjaPilki.y + PREDKOSC_PILKI * delta * kierunekPilki.y
  50.  
  51. # sprawdz ktory klawisz byl wcisniety i zaktualizuj pozycje graczy
  52. if(Input.is_action_pressed("ui_up") and pozycjaPrawegoGracza.y > 0):
  53. pozycjaPrawegoGracza.y = pozycjaPrawegoGracza.y - PREDKOSC_GRACZA * delta
  54. if(Input.is_action_pressed("ui_down") and pozycjaPrawegoGracza.y < rozmiarEkranu.y):
  55. pozycjaPrawegoGracza.y = pozycjaPrawegoGracza.y + PREDKOSC_GRACZA * delta
  56.  
  57. if(Input.is_action_pressed("ui2_up") and pozycjaLewegoGracza.y > 0):
  58. pozycjaLewegoGracza.y = pozycjaLewegoGracza.y - PREDKOSC_GRACZA * delta
  59. if(Input.is_action_pressed("ui2_down") and pozycjaLewegoGracza.y < rozmiarEkranu.y):
  60. pozycjaLewegoGracza.y = pozycjaLewegoGracza.y + PREDKOSC_GRACZA * delta
  61.  
  62. # sprawdzanie kolizji piłki
  63. if(kolizjaPrawegoGracza.has_point(pozycjaPilki) or kolizjaLewegoGracza.has_point(pozycjaPilki)):
  64. kierunekPilki.x = -kierunekPilki.x
  65. randomize()
  66. kierunekPilki.y = 2 * randf() - 1
  67. print(kierunekPilki.y)
  68.  
  69. if(pozycjaPilki.y < 0 or pozycjaPilki.y > rozmiarEkranu.y):
  70. kierunekPilki.y = -kierunekPilki.y
  71.  
  72. # zwiekszamy wynik prawy
  73. if(pozycjaPilki.x < 0):
  74. wynikPrawy += 1
  75. print(str(wynikLewy) + " : " + str(wynikPrawy))
  76. pozycjaPilki = rozmiarEkranu / 2
  77. get_node("wynikPrawy").bbcode_text = "[right]" + str(wynikPrawy)
  78.  
  79. # zwiekszamy wynik lewy
  80. if(pozycjaPilki.x > rozmiarEkranu.x):
  81. wynikLewy += 1
  82. print(str(wynikLewy) + " : " + str(wynikPrawy))
  83. pozycjaPilki = rozmiarEkranu / 2
  84. get_node("wynikLewy").bbcode_text = "[left]" + str(wynikLewy)
  85.  
  86.  
  87. # przekaz nowa pozycje do pilki
  88. get_node("pilka").position = pozycjaPilki
  89. # przekaz nowe pozycje do graczy
  90. get_node("prawyGracz").position = pozycjaPrawegoGracza
  91. get_node("lewyGracz").position = pozycjaLewegoGracza
  92. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement