diff options
author | Juan Linietsky <reduzio@gmail.com> | 2014-02-09 22:10:30 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2014-02-09 22:10:30 -0300 |
commit | 0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac (patch) | |
tree | 276c4d099e178eb67fbd14f61d77b05e3808e9e3 /demos/2d/pong | |
parent | 0e49da1687bc8192ed210947da52c9e5c5f301bb (diff) |
GODOT IS OPEN SOURCE
Diffstat (limited to 'demos/2d/pong')
-rw-r--r-- | demos/2d/pong/ball.png | bin | 0 -> 203 bytes | |||
-rw-r--r-- | demos/2d/pong/engine.cfg | 22 | ||||
-rw-r--r-- | demos/2d/pong/icon.png | bin | 0 -> 956 bytes | |||
-rw-r--r-- | demos/2d/pong/left_pallete.png | bin | 0 -> 200 bytes | |||
-rw-r--r-- | demos/2d/pong/pong.gd | 73 | ||||
-rw-r--r-- | demos/2d/pong/pong.xml | 183 | ||||
-rw-r--r-- | demos/2d/pong/right_pallete.png | bin | 0 -> 202 bytes | |||
-rw-r--r-- | demos/2d/pong/separator.png | bin | 0 -> 203 bytes |
8 files changed, 278 insertions, 0 deletions
diff --git a/demos/2d/pong/ball.png b/demos/2d/pong/ball.png Binary files differnew file mode 100644 index 0000000000..c0f6da4f6f --- /dev/null +++ b/demos/2d/pong/ball.png 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 Binary files differnew file mode 100644 index 0000000000..eab34de53d --- /dev/null +++ b/demos/2d/pong/icon.png diff --git a/demos/2d/pong/left_pallete.png b/demos/2d/pong/left_pallete.png Binary files differnew file mode 100644 index 0000000000..f0d4b549d0 --- /dev/null +++ b/demos/2d/pong/left_pallete.png 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 Binary files differnew file mode 100644 index 0000000000..3cdb673a5b --- /dev/null +++ b/demos/2d/pong/right_pallete.png diff --git a/demos/2d/pong/separator.png b/demos/2d/pong/separator.png Binary files differnew file mode 100644 index 0000000000..56874a59cb --- /dev/null +++ b/demos/2d/pong/separator.png |