summaryrefslogtreecommitdiff
path: root/demos/2d/pong
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-02-09 22:10:30 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-02-09 22:10:30 -0300
commit0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac (patch)
tree276c4d099e178eb67fbd14f61d77b05e3808e9e3 /demos/2d/pong
parent0e49da1687bc8192ed210947da52c9e5c5f301bb (diff)
GODOT IS OPEN SOURCE
Diffstat (limited to 'demos/2d/pong')
-rw-r--r--demos/2d/pong/ball.pngbin0 -> 203 bytes
-rw-r--r--demos/2d/pong/engine.cfg22
-rw-r--r--demos/2d/pong/icon.pngbin0 -> 956 bytes
-rw-r--r--demos/2d/pong/left_pallete.pngbin0 -> 200 bytes
-rw-r--r--demos/2d/pong/pong.gd73
-rw-r--r--demos/2d/pong/pong.xml183
-rw-r--r--demos/2d/pong/right_pallete.pngbin0 -> 202 bytes
-rw-r--r--demos/2d/pong/separator.pngbin0 -> 203 bytes
8 files changed, 278 insertions, 0 deletions
diff --git a/demos/2d/pong/ball.png b/demos/2d/pong/ball.png
new file mode 100644
index 0000000000..c0f6da4f6f
--- /dev/null
+++ b/demos/2d/pong/ball.png
Binary files differ
diff --git a/demos/2d/pong/engine.cfg b/demos/2d/pong/engine.cfg
new file mode 100644
index 0000000000..9e76449bcf
--- /dev/null
+++ b/demos/2d/pong/engine.cfg
@@ -0,0 +1,22 @@
+[application]
+
+name="Pong"
+main_scene="pong.xml"
+icon="res://icon.png"
+
+[display]
+
+width=640
+height=400
+stretch_2d=true
+
+[input]
+
+left_move_up=[key(A)]
+left_move_down=[key(Z)]
+right_move_up=[key(Up)]
+right_move_down=[key(Down)]
+
+[render]
+
+default_clear_color=#ff000000
diff --git a/demos/2d/pong/icon.png b/demos/2d/pong/icon.png
new file mode 100644
index 0000000000..eab34de53d
--- /dev/null
+++ b/demos/2d/pong/icon.png
Binary files differ
diff --git a/demos/2d/pong/left_pallete.png b/demos/2d/pong/left_pallete.png
new file mode 100644
index 0000000000..f0d4b549d0
--- /dev/null
+++ b/demos/2d/pong/left_pallete.png
Binary files differ
diff --git a/demos/2d/pong/pong.gd b/demos/2d/pong/pong.gd
new file mode 100644
index 0000000000..bfffdcf0d8
--- /dev/null
+++ b/demos/2d/pong/pong.gd
@@ -0,0 +1,73 @@
+
+extends Node2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const INITIAL_BALL_SPEED = 80
+var ball_speed = INITIAL_BALL_SPEED
+var screen_size = Vector2(640,400)
+#default ball direction
+var direction = Vector2(-1,0)
+var pad_size = Vector2(8,32)
+const PAD_SPEED = 150
+
+
+func _process(delta):
+
+
+ # get ball positio and pad rectangles
+ var ball_pos = get_node("ball").get_pos()
+ var left_rect = Rect2( get_node("left").get_pos() - pad_size*0.5, pad_size )
+ var right_rect = Rect2( get_node("right").get_pos() - pad_size*0.5, pad_size )
+
+ #integrate new ball postion
+ ball_pos+=direction*ball_speed*delta
+
+ #flip when touching roof or floor
+ if ( (ball_pos.y<0 and direction.y <0) or (ball_pos.y>screen_size.y and direction.y>0)):
+ direction.y = -direction.y
+
+ #flip, change direction and increase speed when touching pads
+ if ( (left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
+ direction.x=-direction.x
+ ball_speed*=1.1
+ direction.y=randf()*2.0-1
+ direction = direction.normalized()
+
+ #check gameover
+ if (ball_pos.x<0 or ball_pos.x>screen_size.x):
+ ball_pos=screen_size*0.5
+ ball_speed=INITIAL_BALL_SPEED
+ direction=Vector2(-1,0)
+
+
+ get_node("ball").set_pos(ball_pos)
+
+ #move left pad
+ var left_pos = get_node("left").get_pos()
+
+ if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
+ left_pos.y+=-PAD_SPEED*delta
+ if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
+ left_pos.y+=PAD_SPEED*delta
+
+ get_node("left").set_pos(left_pos)
+
+ #move right pad
+ var right_pos = get_node("right").get_pos()
+
+ if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
+ right_pos.y+=-PAD_SPEED*delta
+ if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
+ right_pos.y+=PAD_SPEED*delta
+
+ get_node("right").set_pos(right_pos)
+
+
+
+func _ready():
+ screen_size = get_viewport_rect().size # get actual size
+ pad_size = get_node("left").get_texture().get_size()
+ set_process(true)
+
diff --git a/demos/2d/pong/pong.xml b/demos/2d/pong/pong.xml
new file mode 100644
index 0000000000..cf47a8db9f
--- /dev/null
+++ b/demos/2d/pong/pong.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="6" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
+ <ext_resource path="res://pong.*" type="GDScript"></ext_resource>
+ <ext_resource path="res://separator.*" type="ImageTexture"></ext_resource>
+ <ext_resource path="res://left_pallete.*" type="ImageTexture"></ext_resource>
+ <ext_resource path="res://right_pallete.*" type="ImageTexture"></ext_resource>
+ <ext_resource path="res://ball.*" type="ImageTexture"></ext_resource>
+ <main_resource>
+ <dictionary name="_bundled" shared="false">
+ <string> "names" </string>
+ <string_array len="27">
+ <string> "game" </string>
+ <string> "Node2D" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "script/script" </string>
+ <string> "__meta__" </string>
+ <string> "left" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "right" </string>
+ <string> "separator" </string>
+ <string> "ball" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 5 </int>
+ <string> "variants" </string>
+ <array len="20" shared="false">
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <resource resource_type="GDScript" path="res://pong.*"> </resource>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="1" shared="false">
+ <string> "res://pong.gd" </string>
+ </array>
+ </dictionary>
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "pixel_snap" </string>
+ <bool> True </bool>
+ <string> "zoom" </string>
+ <real> 1.108033 </real>
+ <string> "ofs" </string>
+ <vector2> -54.59, -36.0052 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ </array>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary shared="false">
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "Script" </string>
+ </dictionary>
+ <vector2> 67.6875, 183.208 </vector2>
+ <resource resource_type="ImageTexture" path="res://left_pallete.*"> </resource>
+ <bool> False </bool>
+ <int> 1 </int>
+ <int> 0 </int>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ <vector2> 577, 187 </vector2>
+ <resource resource_type="ImageTexture" path="res://right_pallete.*"> </resource>
+ <vector2> 320, 200 </vector2>
+ <resource resource_type="ImageTexture" path="res://separator.*"> </resource>
+ <vector2> 320.283, 188 </vector2>
+ <resource resource_type="ImageTexture" path="res://ball.*"> </resource>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="197"> -1, -1, 1, 0, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 0, 0, 0, 12, 11, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 7, 7, 3, 8, 4, 13, 8, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 24, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 14, 7, 3, 8, 4, 13, 15, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 25, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 16, 7, 3, 8, 4, 13, 17, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 26, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 18, 7, 3, 8, 4, 13, 19, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/pong/right_pallete.png b/demos/2d/pong/right_pallete.png
new file mode 100644
index 0000000000..3cdb673a5b
--- /dev/null
+++ b/demos/2d/pong/right_pallete.png
Binary files differ
diff --git a/demos/2d/pong/separator.png b/demos/2d/pong/separator.png
new file mode 100644
index 0000000000..56874a59cb
--- /dev/null
+++ b/demos/2d/pong/separator.png
Binary files differ