From 9e479065f5ecc3017868d01380e024f11070baf2 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Thu, 11 Jun 2015 09:55:38 -0300 Subject: [PATCH 1/2] new space shooter demo ortho camera sort fix, closes #2063 --- demos/2d/space_shooter/asteroid.gd | 49 +++++++++++++ demos/2d/space_shooter/asteroid.scn | Bin 0 -> 4516 bytes demos/2d/space_shooter/bg_gradient.png | Bin 0 -> 1572 bytes demos/2d/space_shooter/big_star.png | Bin 0 -> 275 bytes demos/2d/space_shooter/enemy1.gd | 37 ++++++++++ demos/2d/space_shooter/enemy1.png | Bin 0 -> 7048 bytes demos/2d/space_shooter/enemy1.scn | Bin 0 -> 3759 bytes demos/2d/space_shooter/enemy2.gd | 56 +++++++++++++++ demos/2d/space_shooter/enemy2.png | Bin 0 -> 5676 bytes demos/2d/space_shooter/enemy2.scn | Bin 0 -> 3801 bytes demos/2d/space_shooter/enemy_shot.gd | 32 +++++++++ demos/2d/space_shooter/enemy_shot.png | Bin 0 -> 330 bytes demos/2d/space_shooter/enemy_shot.scn | Bin 0 -> 3944 bytes demos/2d/space_shooter/engine.cfg | 21 ++++++ demos/2d/space_shooter/explosion.scn | Bin 0 -> 1497 bytes demos/2d/space_shooter/fire.png | Bin 0 -> 357 bytes demos/2d/space_shooter/game_state.gd | 24 +++++++ demos/2d/space_shooter/level.scn | Bin 0 -> 9185 bytes demos/2d/space_shooter/level_tiles.res | Bin 0 -> 720 bytes demos/2d/space_shooter/level_tiles.scn | Bin 0 -> 2148 bytes demos/2d/space_shooter/main_menu.gd | 20 ++++++ demos/2d/space_shooter/main_menu.scn | Bin 0 -> 2402 bytes demos/2d/space_shooter/meteorite.png | Bin 0 -> 6072 bytes demos/2d/space_shooter/parallax.scn | Bin 0 -> 3307 bytes demos/2d/space_shooter/rail.gd | 26 +++++++ demos/2d/space_shooter/ship.gd | 88 +++++++++++++++++++++++ demos/2d/space_shooter/ship.png | Bin 0 -> 2815 bytes demos/2d/space_shooter/ship.scn | Bin 0 -> 6752 bytes demos/2d/space_shooter/shoot.png | Bin 0 -> 222 bytes demos/2d/space_shooter/shot.gd | 47 ++++++++++++ demos/2d/space_shooter/shot.scn | Bin 0 -> 3990 bytes demos/2d/space_shooter/small_star.png | Bin 0 -> 90 bytes demos/2d/space_shooter/sound_explode.wav | Bin 0 -> 75832 bytes demos/2d/space_shooter/sound_shoot.wav | Bin 0 -> 78888 bytes demos/2d/space_shooter/tile.png | Bin 0 -> 810 bytes drivers/gles2/rasterizer_gles2.cpp | 11 ++- drivers/gles2/rasterizer_gles2.h | 3 +- makerel.bat | 1 + scene/2d/camera_2d.cpp | 68 ++++++++++-------- scene/2d/camera_2d.h | 14 +++- servers/visual/rasterizer.h | 2 +- servers/visual/rasterizer_dummy.cpp | 2 +- servers/visual/rasterizer_dummy.h | 2 +- servers/visual/visual_server_raster.cpp | 9 ++- 44 files changed, 468 insertions(+), 44 deletions(-) create mode 100644 demos/2d/space_shooter/asteroid.gd create mode 100644 demos/2d/space_shooter/asteroid.scn create mode 100644 demos/2d/space_shooter/bg_gradient.png create mode 100644 demos/2d/space_shooter/big_star.png create mode 100644 demos/2d/space_shooter/enemy1.gd create mode 100644 demos/2d/space_shooter/enemy1.png create mode 100644 demos/2d/space_shooter/enemy1.scn create mode 100644 demos/2d/space_shooter/enemy2.gd create mode 100644 demos/2d/space_shooter/enemy2.png create mode 100644 demos/2d/space_shooter/enemy2.scn create mode 100644 demos/2d/space_shooter/enemy_shot.gd create mode 100644 demos/2d/space_shooter/enemy_shot.png create mode 100644 demos/2d/space_shooter/enemy_shot.scn create mode 100644 demos/2d/space_shooter/engine.cfg create mode 100644 demos/2d/space_shooter/explosion.scn create mode 100644 demos/2d/space_shooter/fire.png create mode 100644 demos/2d/space_shooter/game_state.gd create mode 100644 demos/2d/space_shooter/level.scn create mode 100644 demos/2d/space_shooter/level_tiles.res create mode 100644 demos/2d/space_shooter/level_tiles.scn create mode 100644 demos/2d/space_shooter/main_menu.gd create mode 100644 demos/2d/space_shooter/main_menu.scn create mode 100644 demos/2d/space_shooter/meteorite.png create mode 100644 demos/2d/space_shooter/parallax.scn create mode 100644 demos/2d/space_shooter/rail.gd create mode 100644 demos/2d/space_shooter/ship.gd create mode 100644 demos/2d/space_shooter/ship.png create mode 100644 demos/2d/space_shooter/ship.scn create mode 100644 demos/2d/space_shooter/shoot.png create mode 100644 demos/2d/space_shooter/shot.gd create mode 100644 demos/2d/space_shooter/shot.scn create mode 100644 demos/2d/space_shooter/small_star.png create mode 100644 demos/2d/space_shooter/sound_explode.wav create mode 100644 demos/2d/space_shooter/sound_shoot.wav create mode 100644 demos/2d/space_shooter/tile.png create mode 100644 makerel.bat diff --git a/demos/2d/space_shooter/asteroid.gd b/demos/2d/space_shooter/asteroid.gd new file mode 100644 index 0000000000..f21b9777bb --- /dev/null +++ b/demos/2d/space_shooter/asteroid.gd @@ -0,0 +1,49 @@ + +extends Area2D + +# member variables here, example: +# var a=2 +# var b="textvar" + +const SPEED=-200 +const Y_RANDOM=10 + +var points=1 + + +var speed_y=0.0 + +func _process(delta): + + translate( Vector2(SPEED,speed_y) * delta ) + +func _ready(): + # Initialization here + speed_y=rand_range(-Y_RANDOM,Y_RANDOM) + pass + +var destroyed=false + +func destroy(): + if (destroyed): + return + destroyed=true + get_node("anim").play("explode") + set_process(false) + get_node("sfx").play("sound_explode") + #accum points + get_node("/root/game_state").points+=1 + +func is_enemy(): + return not destroyed + + +func _on_visibility_enter_screen(): + set_process(true) + #make it spin! + get_node("anim").play("spin") + + +func _on_visibility_exit_screen(): + queue_free() + pass # replace with function body diff --git a/demos/2d/space_shooter/asteroid.scn b/demos/2d/space_shooter/asteroid.scn new file mode 100644 index 0000000000000000000000000000000000000000..b881725ea4227eb4d483439b9a637f3e330f6b27 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/bg_gradient.png b/demos/2d/space_shooter/bg_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..3e71976dc6f99e40c86327034feff89b56b41440 GIT binary patch literal 1572 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2V2a>iVqjpnP-DQvz`*+2)5S3)qw#I@?P*UG zIM#gn@qhmry9FE_wKLz|JNc$0PK`5Au$yTk`;VCUuYc<;lb&byk?ErQuI-boG=DK( z@XLw`IH2+&P2r%ysT*`he^XNm;5P03}rHGGaH1zhxr72eDQXs_Yo5Y z$J3veY#|@ZrB_!k&E`2ZGxqD|O!TX_q~D{V67>?RlHTwxV#k3x}_2Z8&>k z=ZSA_;r%OrJF_-2R(&Zdj((@B$3OqQ@P;Nu(~m}PsszeI?6fC;X-xTIEnsWqxAq-3 z3nNe6slz*G9iP;%-?@I;Gx6A4?W~uXa%~kZ_;TNQoEIa|mzk*Dp?~Bc%d`cdM_MkQ za-Xm;bWURzzw!FT#d3RuL=-~boLX1#_}1k!HOGun3XRU3)ambfXWXfi+mo>K{CkDJ ziyL-7criyvaQb6+j@{E|KFAkUiTQ4I=DqHj&ROd6`(KpSm3nLMf5^)j(SP$smx%4E z&3SrBcjs%)ICiJ3T>H@hR*vtk%ofx8>~yvU7E8I<&JGAK_;T8G-U45?`FlCGe%^V! zaPEuw7X1blrn|GAsjUc{8ug=R>2irZQE%oxDT>aza_KhvmA%sxekZ6gb<0~$^?diI zc+?^t>n|kX6tv)b>b30wpZH4etFN&6 z?ycRLf6mi8j!Vrfo)mF(BCDQs^Nghqst@=SHS`{CePm=95u;i;`(fq$u$|q% z&WL?IGIv*9*N5mQF3WTO$Jn2ZotbrhO~S*h@~At4Z$eEaR-C?|RCoCI$qDy0Kj@hV zohZ3y8eLE){bH+!vuMGiAL|rqkDSl#xzoY<*5CgFJI9{-ACX>GpHHzWzR@c>%UL(S zq59;ZZNa_9`qNK-aGH>#;9^l!KJ$clrogT}HLa|<3%`q;NtydXaesNHgZ2lTXNldh z;&Y4sy-0tze}YKRUH9#aiq~G7H(loPt>~>ElqUa7xW0nFv+r+}O3*v**2j|=v#Jdo zx&@7%<;yz-|a&{oYLM;8fSI3hks|&kDV-M_bsc@(JUa7+ej;o{k1mx zw*xPt!VjHqCl+}u6*{}RT=-;|<)a&_Y98!jt6h!WY?#%b<)b?<{JUtAs6ux_y%xvG z%%0n~m)@P%}^k=DTf0Q3toL_`N~l_s;q0_tnq-O>oiIjNW7V_k`b7p*e55FR?e@oO~<(%faQW zOP9CacVOeoY2U1LbN46X`zP7A%}#h@)S`5Bv+JCzXYa_p{F|}R&^eVU;6}@l8%}|# zERLBn)~hC76%t`OG)>%~S8$5h=BwxOZ@xLovi)^!lWEnjjTe6%+MzN%a>|77OZ0{`z3GCi%X4;-|J{p^HxlR|oCq|s(5A$pAPg+)5 zYQNEocUSR;Si#i{5Ba)*t&Gly47iMnN}%D%vdK4c=7%{ErCXD$w%j;h zz98-XeX-9!#G8E9ZkLc) literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/big_star.png b/demos/2d/space_shooter/big_star.png new file mode 100644 index 0000000000000000000000000000000000000000..7726a7aa12aa0ebf5f7bf43779fbc5cc29cce796 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0y~yVBiN~4mJh`2J356y%-o6*pj^6T^PXNr}OT51_lPs z0*}aI1_o|n5N2eUHAjMhfq}im)7O>#J{zZys`(^|J#7pO46>Oa5hc#~xw)x%C1Cx| zMX8A;sVNHOnI#zt?w-B@DSD~w3=9nAo-U3d8t1o8+{k;tfP+Qxl!nQfhov@s*FVab znD{&j>06_5kh5#QM z8=hx)Tuhd()au}PGDpzXNU(9$yn9o5;u6!Y*@=JaK2-niY0F`yO>eX;7>W(81&aed QiGv*H>FVdQ&MBb@09#I3`v3p{ literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/enemy1.gd b/demos/2d/space_shooter/enemy1.gd new file mode 100644 index 0000000000..051798742a --- /dev/null +++ b/demos/2d/space_shooter/enemy1.gd @@ -0,0 +1,37 @@ + +extends Area2D + +# member variables here, example: +# var a=2 +# var b="textvar" + +const SPEED=-200 + +func _process(delta): + get_parent().translate(Vector2(SPEED*delta,0)) + + +var destroyed=false + +func is_enemy(): + return not destroyed + + +func destroy(): + if (destroyed): + return + destroyed=true + get_node("anim").play("explode") + set_process(false) + get_node("sfx").play("sound_explode") + #accum points + get_node("/root/game_state").points+=5 + +func _on_visibility_enter_screen(): + set_process(true) + get_node("anim").play("zigzag") + get_node("anim").seek(randf()*2.0) #make it start from any pos + +func _on_visibility_exit_screen(): + queue_free() + diff --git a/demos/2d/space_shooter/enemy1.png b/demos/2d/space_shooter/enemy1.png new file mode 100644 index 0000000000000000000000000000000000000000..242d8f0055dc65d3327ec486a635433e822576e4 GIT binary patch literal 7048 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 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/enemy1.scn b/demos/2d/space_shooter/enemy1.scn new file mode 100644 index 0000000000000000000000000000000000000000..14298f0a599ed605fe96140ea0530528636caa33 GIT binary patch literal 3759 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 aW_gTbF%N^MtDnm{r-Y`U;2>vE9~%JYzSDdF literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/engine.cfg b/demos/2d/space_shooter/engine.cfg new file mode 100644 index 0000000000..12fd49b6e9 --- /dev/null +++ b/demos/2d/space_shooter/engine.cfg @@ -0,0 +1,21 @@ +[application] + +name="Simple Shooter" +main_scene="res://main_menu.scn" + +[autoload] + +game_state="res://game_state.gd" + +[display] + +width=1024 +height=600 + +[input] + +move_up=[key(Up)] +move_down=[key(Down)] +move_left=[key(Left)] +move_right=[key(Right)] +shoot=[key(Space)] diff --git a/demos/2d/space_shooter/explosion.scn b/demos/2d/space_shooter/explosion.scn new file mode 100644 index 0000000000000000000000000000000000000000..4edcf709cb4d7ffa0de4255ab8d3c75f8e80c409 GIT binary patch literal 1497 zcmWFvc6Md}0RaYvXIu;n2U!^y7#SEE7#SE9*c_N07#MgIShxZble1G(f|FD8QWba~ zm@+W1DcB`MGw>;J@D-&N=a&{Gr|Rb==B6@mC!)QFrRo*r zr86)o2r+OeFtg<3Cnx48NH7^Na3nN6U=?LDWN3Q8B+B6IP{SOQm|Kuw>)^_`TK1`8yz!a21^GoK@db$`84SV-0$gR8#hFQ&IhiGu`UzZ&IjIlW#hCL8 z5|b6=7#SoUug}bCEF|Rl+zbIF~Aiwe0 z14coXqWlsD0R`I!jDifsinAF~6J1!U^s5-S6{I<<^ovq+5=%16QWN~Rlk@Y^GSl@F zbMs5{8f+E_vgTx_rIutWIWPz*m@E)>;Ae<$2ztOI%3V;DT2PdqoLXGWAo74wnsHeA28c8W+W;KC{;72<|%D+j9Q?Xl*1Tbtmw*= z${_lHDW`EcLz%L-LhA#jNY=ER%!2rg2ONS7Wl0wn1T&NoDrW^q-?`b z{D4`Qq3nP#gP=k=V?m;VJX5iLiZTyla*30?L-7I;hGInl=EM{R@du1*966bJsfk7L zWvL4L9RE7(e88Z?n3?y0QNr=p0tu%4q9jF!2Mk6Gk`EYtnbV6B%M@H0;vX>9IQcFx zJ0QbaTvC*pm##G3anb^5=Ay)uOhsFk#N_1EoCnOt%q59=>53T-7^R)xE-+?DQC{P? z_5sr-rp&y|25siN^qkZO%<%^#n2Iy2niLi|Go@wbDU>CMK45ZV&nQieFH0=SRO(ia zf53EzIWaFYSMd>3YHG@&><8@92hyDx90HUDnNsp|9e+J!n&7nH0h7eSDGbtzZV#A5 zAF|JIOnty4_mFjti{1k!nTKo(7-S!?MjmW`$hd?-<^iw5LxvR&PaiPFJ!Dz)fX(_L z#|CG`2Taxnw>)4wchJ0X#{;(f12T!roZ25S`9EYj@PIAoA?uL`Y|9>UoOr-3f1up) zjJsIcd z=hy;=a0h;OA@&BRZ2KPq><1jAnHxQ~9dZz6U{G7(!0e#zz~I2nsK9W*o{_=cLEC}B zA>4tX!MK6JL7Mr@nKQPIn;eoIUOg9@>7d8Vz+mFsz|MHW$$_2u>=_wH2XG{K3K4ncIQg;i-eWi=uxYX^46Jr3+12OXL{%pLd{l^Gh?J@z{AJNi1XGpH$uJ1k~US73KI&Y+>d z?jX*fsle{Q&!7b+wHL56=qzAo&|SdJptpdXL4N@|gTVrJ2EzsH3`Pss8H^XOGng!3 zXE0sB&S18HoxywoJA=gnb_UA@>U85kH&db&7uZ)Rk8?sq8BC%d&s=iJWTjQ;)ZMXvHYRcT-6}MD>f-wQ(!DQh-^eq}I^`AC#Q7rb zuikxTtJ09kb#Hzy5w-r!@Y`zBlG8_Q9vFRCSIhYHdHV+&J(ay6-+H?GxvXmax_points): + max_points=points + #save high score + var f = File.new() + f.open("user://highscore",File.WRITE) + f.store_var(max_points) + \ No newline at end of file diff --git a/demos/2d/space_shooter/level.scn b/demos/2d/space_shooter/level.scn new file mode 100644 index 0000000000000000000000000000000000000000..12a679f8b66fbb3217340c8290e41807b304f598 GIT binary patch literal 9185 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 Tfzpy3)R`bPAdiCV0i|UCx2tpl literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/level_tiles.scn b/demos/2d/space_shooter/level_tiles.scn new file mode 100644 index 0000000000000000000000000000000000000000..3fb91d8cb3016445824c4fac710ecaccf474e9a4 GIT binary patch literal 2148 zcmWFvc6Md}0RaYvkNgY_J{$}Tj0_A7j0}tlY!1v03=BL9EW81U$=RtX!O5w4sSH_s z3IY#|7#P?TtP`Rg-1&-9i}Op1l2i5b5_3}-gcYQOlS_+B@^j;h^K;5li{g_q6N?!* z6vWt4D@s!HN{SOq*ou>jG7C!d8`u~bI2B~sZlkmL_a zO)g2yOV3FS&PXgsHF8OCaqwVZQIK(9U|?2YaR^~%U}$i3V1CGM;^57~%D})NrNGR< zuE6ZT?a1Nqjj5PHNkNc7LxI^rlF2VW#UX)#SAmZ^J~OuAh9GPQJSkPvp6#; zGbgj8Qa^!^fzCbF_r=~ppuD@b!z z=@+HuB$i~Br8drFi_c9hNsNzAc*~HaSj>=}@RT*UpeVB>HE|U~$--5R$CVP8N>Ymy zk2`X*=BK3%JMT^t`dc|Bl|QJSOh z;sKMaqc2NZQD$<9LSn*Sh9rd@jLE49RSeDtsu+SDE-8F;G)Y*J7y{B3~~wv zj#*B92N;}#9FiOiK#9cOA>4t#IjVu7LHd9&V}rc|vxB+=gQKtmw?mGj4S#%mYD#8F zeo=fuPHB2(Uc90wQ%P#EQm=!CLym)ngMlK8gOI~+2O$S`&f>hpg7|{WiqxD0O$P=C zDVN0wQp!9^CQ7c%#U-f)2~(LTakbewC^;}QSLNsDCWtU^GF04$S;4u>6~=O;mraohui}U4t5S+O!;ZW3F7Pp7f&7f_R;>3gZKl+%?mjnu*`G} zWiW0Gbx3e9aA;>tNmV}WQlMbM7+;wX&0KR+!QMd*aHwHQ%P&h{ zXJ%k9adHrLSioGCnOg2D)8y`;>bT#<%t6s9gE1vj@vYM*2N@;?hK9serq$B|+YS!9m{Pxr4mw zZq|(a^!&WUN34zx{jSlDVh@-Z9z-5+U~pLQ;O~J4rw%yYah`TqmLXo9fgv@y>(Fio zS>ES^3^^wWVT2hkao^vsB$}#%*A~6%o$q;Z;y`$W-=ESr6(oKaA0td zaSl?DX_)L{#ZZx8&1B_Pn9%O=?kU4-#-dWy$*id*C7F5YPuX8NOkI`0oLH1zoDk)3 zm_;{7L8Vxuh9NaU(D{dh%R>em2L^}MXFNeH$wjHDd1^rp3NByNyd3%*-niSo66L$HJN z17-%t+m6)^#crEGY26{-fg6h1AE*~QU3F-8QgiTkdEnsfz1v~BqpkzH`yPjE$3h2o zhi-@69?cHh8N?N)IH)^jI;?kKaPW6vaQx%I{J{UP>pzET25E&HhuI7=3ha*N46+LB z4);Cv9poA075E+G9j`mEGb%DPy!LT%G-ps&;CFOpP*Gra;CEmEVFpzN76)dB!w&Zk z+;)(6;CAqL;C8fjV0W;05O#d-And5^AnbVGLD;d_LD*rsgFS z#vWeA$S|Si{{b}?zrQL1hyLFWIXg#^dHp{5{(#11S~c&^^ep*)Z}!BHT93SPL95n% zzhBy%VK}qqUaGv`)s;^kHJVyUJQUR^{(5SDqEW$2^?U|{9t(+WA6xu#<+~SYthVI{ z>^r=pV)2W*rA#gU3(xDXcvi{h&}yZh=EfyH-PBFs5G&td28P&j-taf~?9Kj9^(g literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/main_menu.gd b/demos/2d/space_shooter/main_menu.gd new file mode 100644 index 0000000000..52221aba1b --- /dev/null +++ b/demos/2d/space_shooter/main_menu.gd @@ -0,0 +1,20 @@ + +extends Control + +# member variables here, example: +# var a=2 +# var b="textvar" + +func _ready(): + + get_node("score").set_text( "HIGH SCORE: "+str( get_node("/root/game_state").max_points ) ) + # Initialization here + pass + + + + +func _on_play_pressed(): + get_node("/root/game_state").points=0 + get_tree().change_scene("res://level.scn") + pass # replace with function body diff --git a/demos/2d/space_shooter/main_menu.scn b/demos/2d/space_shooter/main_menu.scn new file mode 100644 index 0000000000000000000000000000000000000000..b87cc5d3a8b1c1313558b4d4f81e2d02e3f066c9 GIT binary patch literal 2402 zcmWFvc6Md}0RaYvAA$@Fo$L$@dl?xR7#SEE7#SE9*c_N07#MgISa<^xle1G(f|FD8 zQW>5KCD@rZSFD*(=)z3@JO=aLz5M+-}D$PsDNli(RV=GQB z$}A|+Z(vI>WnfoOVhBzUWn>Um;8L*Xv(nekP0Y-T&rQuM)k{xFP-Wm!kYdTnPfpBH zkYO@lxTnDD!0>?mq(dtMlY#_;lmfFuI0LH!I|G{nvqLviF@urhk`JNbADb)QGN~suL3uBd}eMzeo;w$L1IZp!ep+p%;Lb#+=j# z>|)IM1&PTDa*PZT3U&!f4Z1AFsX1x!2c#Lq9@ z7deO~YAz69Ps%ST$D#FEVXginh7 zkC_OK`CWF}|F=jSzu zBm^;LCM&o*J1IV7C`p*0pu$)XpK!oQC_z`DtiedZ-Pz+nu!Fe+zv5rU;!Fj124+PC z=Xnm|jw=+RneyV373CO89&ku8R6K^u+7b$#W zC{-$Bi!UxoEJ-a^n)iTN;{j8cgP231gS{gUb8=}>k>a6*UzZv;9%!)lqo;0I6<6UG1dBTedCcs4&o0OH!tLTz%tV@l)<<$)FHva zz@eQfB{fZXuIefU6UO+;glMLkn+l1F4ob{bX^BM%BFqd7znmQe9BP=-^2-v~nHd;N zoE(H57BH7(rk1;fH9mDvb&_?`aZq%+qr8rxMD;5}YJvdl z4x$W|4>&{}To`f`T-2{H6eZkZU|gW*VyAk7Jw7$BEVC#-Psy91BthPR!6C)rxr4mg zSC)+Y^!z;4HIJAb9o8@vd5P86X!C}FJzXu+iI^cN6dD>xFjTp80&RvIg zJIE?Gvm}=0l*A`@B+WV?>+z2{F*hkw>0*Pdngvr%eo=xr^Q@VYb_bXl7}WS3vYk7h zu!bD)bpD(msc}N}_5+qw=RBsWywt@nna`d%W9#7UrF~!~b8%66Qi72KgM*B7kb+FY zM&}ib@fFE#Ojd4%3GHsp&lr3ei%L}|v!<4mWagzG^Kq_oaC4Zd`BjUFAztHU`*erH zEV?-gD#aRn?SGtqIJi7yuyJ5;uzSX{CF`r&76%2#Of@g(hs+EOr<@bmnHbhMC9pFc z;BZM`XJk0mz^}mIVB`?YAFL3d;HcoN;Hsbytl**GufWIeU2nL@9c18!G1rZEUsfG@Zxja1GJrshS{exVs7FaW!YtUw7INZR_cz|_*F~i*i zV}}mr03XN5L=OiB2LZ=r9yUzH3~~=I zG;@e|Xm&_;pY4$RfSJKv(dnAQYL90Q`VI^Z^$x)f@eaZc{toO8?hewPTn@{j7a zN^)54xZYv8gRlbw3_oDr?GXQfefNRQu5TT*Jh!0*7$prXL;AkUz>fSo~2f!$I60W*UmH-ox@z(Z|r$6`lr zhy9LV+OhayF}LGwM{dW>50$wYG!@wyG!&Q}xeqowFgUn7Zg=!{?0>{4&cwjL%*?>R zAf~{~AgaL3Ag;jdz|A0`!0y1!APFWp71$jZ7`Pl*6c`w|6~I+Bn9Zxe%)p|+%)qC> z%)qF?%)qa}%)qL^%pjn^?7+?-sKCy^q`=IerNHc<&Y-=3ok3>-JA>{5b_PWSc86jH zJq319P0OIK!0e#UV6cFlK}ms~ff;1JLpTGQ0tZ`ieqJ6Z{x}_Y8JNLtFj8P)FjQc6 zD0N_Pn3}-gz~OL=t0bc|Hz_YMGlxN5L7d^G0yA4@fS)@rmz0AH3$Le#OOS#Ps{;cA zg93+xv%K#AmzNnB7&dsiIEF;DzP)0|cUVEdB~UDy#a((%^baHXJ98#wACWa(;@~A| z{mDgpN$u23w|}ewJr{eO;RDkZPr%e*AB!Gw2$Szopr7#J9Wf`gnvtt$ZCj?6>= literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/meteorite.png b/demos/2d/space_shooter/meteorite.png new file mode 100644 index 0000000000000000000000000000000000000000..92fb4387df9a3b54b55d6180570511f954f49c5a GIT binary patch literal 6072 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 Iol`;+02hql)&Kwi literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/parallax.scn b/demos/2d/space_shooter/parallax.scn new file mode 100644 index 0000000000000000000000000000000000000000..f67277dc015a44edfb044730bb434a382288a05b GIT binary patch literal 3307 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 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/rail.gd b/demos/2d/space_shooter/rail.gd new file mode 100644 index 0000000000..803a09fe84 --- /dev/null +++ b/demos/2d/space_shooter/rail.gd @@ -0,0 +1,26 @@ + +extends Node2D + + +const SPEED=200 +# member variables here, example: +# var a=2 +# var b="textvar" + +func stop(): + set_process(false) + +var offset=0 + + +func _process(delta): + + offset+=delta*SPEED + set_pos(Vector2(offset,0)) + +func _ready(): + set_process(true) + # Initialization here + + + diff --git a/demos/2d/space_shooter/ship.gd b/demos/2d/space_shooter/ship.gd new file mode 100644 index 0000000000..fa444868a4 --- /dev/null +++ b/demos/2d/space_shooter/ship.gd @@ -0,0 +1,88 @@ + +extends Area2D + +# member variables here, example: +# var a=2 +# var b="textvar" + +const SPEED = 200 + +var screen_size + +var prev_shooting=false + +func _process(delta): + + var motion = Vector2() + if Input.is_action_pressed("move_up"): + motion+=Vector2(0,-1) + if Input.is_action_pressed("move_down"): + motion+=Vector2(0,1) + if Input.is_action_pressed("move_left"): + motion+=Vector2(-1,0) + if Input.is_action_pressed("move_right"): + motion+=Vector2(1,0) + var shooting = Input.is_action_pressed("shoot") + + var pos = get_pos() + + pos+=motion*delta*SPEED + if (pos.x<0): + pos.x=0 + if (pos.x>screen_size.x): + pos.x=screen_size.x + if (pos.y<0): + pos.y=0 + if (pos.y>screen_size.y): + pos.y=screen_size.y + + set_pos(pos) + + if (shooting and not prev_shooting): + # just pressed + var shot = preload("res://shot.scn").instance() + #use the position3d as reference + shot.set_pos( get_node("shootfrom").get_global_pos() ) + #put it two parents above, so it is not moved by us + get_node("../..").add_child(shot) + #play sound + get_node("sfx").play("shoot") + + + prev_shooting = shooting + + #update points counter + get_node("../hud/score_points").set_text( str(get_node("/root/game_state").points) ) + +func _ready(): + # Initialization here + screen_size = get_viewport().get_rect().size + set_process(true) + pass + +var killed=false + +func _hit_something(): + if (killed): + return + killed=true + get_node("anim").play("explode") + get_node("sfx").play("sound_explode") + get_node("../hud/game_over").show() + get_node("/root/game_state").game_over() + get_parent().stop() + set_process(false) + + +func _on_ship_body_enter( body ): + _hit_something() + + +func _on_ship_area_enter( area ): + if (area.has_method("is_enemy") and area.is_enemy()): + _hit_something() + + +func _on_back_to_menu_pressed(): + get_tree().change_scene("res://main_menu.scn") + pass # replace with function body diff --git a/demos/2d/space_shooter/ship.png b/demos/2d/space_shooter/ship.png new file mode 100644 index 0000000000000000000000000000000000000000..a36b833903250083a2c58bc4855ee7b999277445 GIT binary patch literal 2815 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 t5`r0KGu?17_7d9TWfn literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/shoot.png b/demos/2d/space_shooter/shoot.png new file mode 100644 index 0000000000000000000000000000000000000000..6e80ddab93576f507bb48a99652f9d6f258f7a33 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yV31;9VBqFpV_;xNJTUhI0|NtFlDE4H!*zxjhI_}N z4Gb9=7&r?&B8wRqxP?KOkzv*x2?hoR_7YEDSN8jCoJwFfcI4W`;zRIOpf) zrskC}fPiyRYGO%hib8p2Nrr;Er*A-tUMf2S1A~*Ni(`nz>Er|n))XeUAXA(Fe_z`x znoe4i)1wmIa`wTN{``Vf^N;E`T{RLbit$-x&I=d#Wzp$PyZfIlq& literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/shot.gd b/demos/2d/space_shooter/shot.gd new file mode 100644 index 0000000000..813587d670 --- /dev/null +++ b/demos/2d/space_shooter/shot.gd @@ -0,0 +1,47 @@ + +extends Area2D + +# member variables here, example: +# var a=2 +# var b="textvar" + +const SPEED = 800 + +func _process(delta): + translate(Vector2(delta*SPEED,0)) + +func _ready(): + # Initialization here + set_process(true) + pass + +var hit=false + +func _hit_something(): + if (hit): + return + hit=true + set_process(false) + get_node("anim").play("splash") + +func _on_visibility_exit_screen(): + queue_free() + pass # replace with function body + + + +func _on_shot_area_enter( area ): + #hit an enemy or asteroid + if (area.has_method("destroy")): + #duck typing at it's best + area.destroy() + _hit_something() + + + pass + + +func _on_shot_body_enter( body ): + #hit the tilemap + _hit_something() + pass # replace with function body diff --git a/demos/2d/space_shooter/shot.scn b/demos/2d/space_shooter/shot.scn new file mode 100644 index 0000000000000000000000000000000000000000..64c8c25ebe63d4b64d5cded9980c753957e0300e GIT binary patch literal 3990 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 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/small_star.png b/demos/2d/space_shooter/small_star.png new file mode 100644 index 0000000000000000000000000000000000000000..71c3c531cd86d801d037a390a03d8e6fc6f850d2 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0y~yU|)uW}@aHqb-rt-vR&C)~$iTqB;OXk;vd$@?2>^w68I}M5 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/sound_explode.wav b/demos/2d/space_shooter/sound_explode.wav new file mode 100644 index 0000000000000000000000000000000000000000..229c85399c6d936b0fa24803053ec0674c721b3e GIT binary patch literal 75832 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 M%=`cU=l}oz0f(^V1^@s6 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/sound_shoot.wav b/demos/2d/space_shooter/sound_shoot.wav new file mode 100644 index 0000000000000000000000000000000000000000..ad74f328cb4cd0d0fe3e3170744b33dfe1a74dfa GIT binary patch literal 78888 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 literal 0 HcmV?d00001 diff --git a/demos/2d/space_shooter/tile.png b/demos/2d/space_shooter/tile.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f41d16f662fdc6d08bdb1b5b9a74764e8025dc GIT binary patch literal 810 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)3ThVi@ini#9N1 zU|`@Z@Q5sCVBi)8VMc~ob0ioT7}!fZeO=k_vvD$+h)wL%*}=fTAe$KyQR1ARo12mzL!jf3reAgn zmsN|1t5x7qpJL4u+DlHHelqbBlb%wG%MzCoy`G%zHm1gPUqtWBxcT+Xt%4_RixSGy zpUuv%yY~8QUOpE`k^Nq0llVj1*bnT|pBtZUIjJQ0=4Ta#&CAu_{x|c_n)@Rw;Er#vx+0U<8TLFso_Ub*L&uV@R$}Kac0N0uEdC=aLek;!g7+pKf(2Qg?vn~H z9Je|x$mW&2@~zX2!;GuXY`ZOb@N0oa<3#6`t%n^HJwlO#vNR1GXE|9DfBNPWH0Z|hqk*W z+?Y7$vt)p|^%kWihlN_#9ZZrod$u=$`7yuSRWlRK_;kx-jjI}7IKHnh*1BY{C^FG# zx#+{!r=0`cV`CNLKHYV&yX|gr_t=%#UlW7Q{x6(Tz4`X+M|D;0q1!I6c+8ry?3q!! zdM#JU>|@KP3pN@ow*THWRi=HKmDi*?y}vd$@?2>|8+ZPx$* literal 0 HcmV?d00001 diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index a588643fd9..f8e5d11dcf 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -4394,7 +4394,7 @@ void RasterizerGLES2::begin_shadow_map( RID p_light_instance, int p_shadow_pass } -void RasterizerGLES2::set_camera(const Transform& p_world,const CameraMatrix& p_projection) { +void RasterizerGLES2::set_camera(const Transform& p_world,const CameraMatrix& p_projection,bool p_ortho_hint) { camera_transform=p_world; if (current_rt && current_rt_vflip) { @@ -4406,6 +4406,7 @@ void RasterizerGLES2::set_camera(const Transform& p_world,const CameraMatrix& p_ camera_z_near=camera_projection.get_z_near(); camera_z_far=camera_projection.get_z_far(); camera_projection.get_viewport_size(camera_vp_size.x,camera_vp_size.y); + camera_ortho=p_ortho_hint; } void RasterizerGLES2::add_light( RID p_light_instance ) { @@ -4768,8 +4769,11 @@ void RasterizerGLES2::_add_geometry( const Geometry* p_geometry, const InstanceD e->geometry_cmp=p_geometry_cmp; e->material=m; e->instance=p_instance; - //e->depth=camera_plane.distance_to(p_world->origin); - e->depth=camera_transform.origin.distance_to(p_instance->transform.origin); + if (camera_ortho) { + e->depth=camera_plane.distance_to(p_instance->transform.origin); + } else { + e->depth=camera_transform.origin.distance_to(p_instance->transform.origin); + } e->owner=p_owner; e->light_type=0; e->additive=false; @@ -10796,6 +10800,7 @@ void RasterizerGLES2::init() { current_rt=NULL; current_vd=NULL; current_debug=VS::SCENARIO_DEBUG_DISABLED; + camera_ortho=false; glGenBuffers(1,&gui_quad_buffer); glBindBuffer(GL_ARRAY_BUFFER,gui_quad_buffer); diff --git a/drivers/gles2/rasterizer_gles2.h b/drivers/gles2/rasterizer_gles2.h index e83bd39caa..d337ecfb64 100644 --- a/drivers/gles2/rasterizer_gles2.h +++ b/drivers/gles2/rasterizer_gles2.h @@ -1052,6 +1052,7 @@ class RasterizerGLES2 : public Rasterizer { float camera_z_near; float camera_z_far; Size2 camera_vp_size; + bool camera_ortho; Set extensions; bool texscreen_copied; bool texscreen_used; @@ -1589,7 +1590,7 @@ public: virtual void begin_shadow_map( RID p_light_instance, int p_shadow_pass ); - virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection); + virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection,bool p_ortho_hint); virtual void add_light( RID p_light_instance ); ///< all "add_light" calls happen before add_geometry calls diff --git a/makerel.bat b/makerel.bat new file mode 100644 index 0000000000..7db76e1dd7 --- /dev/null +++ b/makerel.bat @@ -0,0 +1 @@ +"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" && c:\python27\scons p=windows target=debug_release tools=no diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index 70b88a6611..49683da226 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -81,43 +81,47 @@ Matrix32 Camera2D::get_camera_transform() { if (!first) { - if (centered) { + if (anchor_mode==ANCHOR_MODE_DRAG_CENTER) { - if (h_drag_enabled) { - camera_pos.x = MIN( camera_pos.x, (new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_RIGHT])); - camera_pos.x = MAX( camera_pos.x, (new_camera_pos.x - screen_size.x * 0.5 * drag_margin[MARGIN_LEFT])); - } else { + if (h_drag_enabled) { + camera_pos.x = MIN( camera_pos.x, (new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_RIGHT])); + camera_pos.x = MAX( camera_pos.x, (new_camera_pos.x - screen_size.x * 0.5 * drag_margin[MARGIN_LEFT])); + } else { - if (h_ofs<0) { - camera_pos.x = new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_RIGHT] * h_ofs; - } else { - camera_pos.x = new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_LEFT] * h_ofs; - } - } + if (h_ofs<0) { + camera_pos.x = new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_RIGHT] * h_ofs; + } else { + camera_pos.x = new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_LEFT] * h_ofs; + } + } - if (v_drag_enabled) { + if (v_drag_enabled) { - camera_pos.y = MIN( camera_pos.y, (new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM])); - camera_pos.y = MAX( camera_pos.y, (new_camera_pos.y - screen_size.y * 0.5 * drag_margin[MARGIN_TOP])); + camera_pos.y = MIN( camera_pos.y, (new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM])); + camera_pos.y = MAX( camera_pos.y, (new_camera_pos.y - screen_size.y * 0.5 * drag_margin[MARGIN_TOP])); - } else { + } else { - if (v_ofs<0) { - camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_TOP] * v_ofs; - } else { - camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM] * v_ofs; - } - } + if (v_ofs<0) { + camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_TOP] * v_ofs; + } else { + camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM] * v_ofs; + } + } + } else if (anchor_mode==ANCHOR_MODE_FIXED_TOP_LEFT){ + + camera_pos=new_camera_pos; } + if (smoothing>0.0) { float c = smoothing*get_fixed_process_delta_time(); smoothed_camera_pos = ((new_camera_pos-smoothed_camera_pos)*c)+smoothed_camera_pos; ret_camera_pos=smoothed_camera_pos; -// camera_pos=camera_pos*(1.0-smoothing)+new_camera_pos*smoothing; + // camera_pos=camera_pos*(1.0-smoothing)+new_camera_pos*smoothing; } else { ret_camera_pos=smoothed_camera_pos=camera_pos; @@ -132,7 +136,7 @@ Matrix32 Camera2D::get_camera_transform() { } - Point2 screen_offset = (centered ? (screen_size * 0.5 * zoom) : Point2()); + Point2 screen_offset = (anchor_mode==ANCHOR_MODE_DRAG_CENTER ? (screen_size * 0.5 * zoom) : Point2()); float angle = get_global_transform().get_rotation(); if(rotating){ @@ -267,15 +271,15 @@ Vector2 Camera2D::get_offset() const{ return offset; } -void Camera2D::set_centered(bool p_centered){ +void Camera2D::set_anchor_mode(AnchorMode p_anchor_mode){ - centered=p_centered; + anchor_mode=p_anchor_mode; _update_scroll(); } -bool Camera2D::is_centered() const { +Camera2D::AnchorMode Camera2D::get_anchor_mode() const { - return centered; + return anchor_mode; } void Camera2D::set_rotating(bool p_rotating){ @@ -439,8 +443,8 @@ void Camera2D::_bind_methods() { ObjectTypeDB::bind_method(_MD("set_offset","offset"),&Camera2D::set_offset); ObjectTypeDB::bind_method(_MD("get_offset"),&Camera2D::get_offset); - ObjectTypeDB::bind_method(_MD("set_centered","centered"),&Camera2D::set_centered); - ObjectTypeDB::bind_method(_MD("is_centered"),&Camera2D::is_centered); + ObjectTypeDB::bind_method(_MD("set_anchor_mode","anchor_mode"),&Camera2D::set_anchor_mode); + ObjectTypeDB::bind_method(_MD("get_anchor_mode"),&Camera2D::get_anchor_mode); ObjectTypeDB::bind_method(_MD("set_rotating","rotating"),&Camera2D::set_rotating); ObjectTypeDB::bind_method(_MD("is_rotating"),&Camera2D::is_rotating); @@ -487,7 +491,7 @@ void Camera2D::_bind_methods() { ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"offset"),_SCS("set_offset"),_SCS("get_offset")); - ADD_PROPERTY( PropertyInfo(Variant::BOOL,"centered"),_SCS("set_centered"),_SCS("is_centered")); + ADD_PROPERTY( PropertyInfo(Variant::INT,"anchor_mode",PROPERTY_HINT_ENUM,"Fixed TopLeft,Drag Center"),_SCS("set_anchor_mode"),_SCS("get_anchor_mode")); ADD_PROPERTY( PropertyInfo(Variant::BOOL,"rotating"),_SCS("set_rotating"),_SCS("is_rotating")); ADD_PROPERTY( PropertyInfo(Variant::BOOL,"current"),_SCS("_set_current"),_SCS("is_current")); ADD_PROPERTY( PropertyInfo(Variant::REAL,"smoothing"),_SCS("set_follow_smoothing"),_SCS("get_follow_smoothing") ); @@ -507,6 +511,8 @@ void Camera2D::_bind_methods() { ADD_PROPERTYI( PropertyInfo(Variant::REAL,"drag_margin/bottom",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_drag_margin"),_SCS("get_drag_margin"),MARGIN_BOTTOM); + BIND_CONSTANT( ANCHOR_MODE_DRAG_CENTER ); + BIND_CONSTANT( ANCHOR_MODE_FIXED_TOP_LEFT ); } @@ -514,7 +520,7 @@ Camera2D::Camera2D() { - centered=true; + anchor_mode=ANCHOR_MODE_DRAG_CENTER; rotating=false; current=false; limit[MARGIN_LEFT]=-10000000; diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h index 8975a2584b..79d84f48d0 100644 --- a/scene/2d/camera_2d.h +++ b/scene/2d/camera_2d.h @@ -36,6 +36,12 @@ class Camera2D : public Node2D { OBJ_TYPE( Camera2D, Node2D ); +public: + + enum AnchorMode { + ANCHOR_MODE_FIXED_TOP_LEFT, + ANCHOR_MODE_DRAG_CENTER + }; protected: Point2 camera_pos; @@ -49,7 +55,7 @@ protected: RID canvas; Vector2 offset; Vector2 zoom; - bool centered; + AnchorMode anchor_mode; bool rotating; bool current; float smoothing; @@ -77,8 +83,8 @@ public: void set_offset(const Vector2& p_offset); Vector2 get_offset() const; - void set_centered(bool p_centered); - bool is_centered() const; + void set_anchor_mode(AnchorMode p_anchor_mode); + AnchorMode get_anchor_mode() const; void set_rotating(bool p_rotating); bool is_rotating() const; @@ -120,4 +126,6 @@ public: Camera2D(); }; +VARIANT_ENUM_CAST(Camera2D::AnchorMode); + #endif // CAMERA_2D_H diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h index 79365f7db6..50336e07f4 100644 --- a/servers/visual/rasterizer.h +++ b/servers/visual/rasterizer.h @@ -502,7 +502,7 @@ public: virtual void begin_scene(RID p_viewport_data,RID p_env,VS::ScenarioDebugMode p_debug)=0; virtual void begin_shadow_map( RID p_light_instance, int p_shadow_pass )=0; - virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection)=0; + virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection,bool p_ortho_hint)=0; virtual void add_light( RID p_light_instance )=0; ///< all "add_light" calls happen before add_geometry calls diff --git a/servers/visual/rasterizer_dummy.cpp b/servers/visual/rasterizer_dummy.cpp index 8db1cbf6e5..e32f47b3d8 100644 --- a/servers/visual/rasterizer_dummy.cpp +++ b/servers/visual/rasterizer_dummy.cpp @@ -1497,7 +1497,7 @@ void RasterizerDummy::begin_shadow_map( RID p_light_instance, int p_shadow_pass } -void RasterizerDummy::set_camera(const Transform& p_world,const CameraMatrix& p_projection) { +void RasterizerDummy::set_camera(const Transform& p_world, const CameraMatrix& p_projection, bool p_ortho_hint) { } diff --git a/servers/visual/rasterizer_dummy.h b/servers/visual/rasterizer_dummy.h index 318cf6ff99..cc3c1724a4 100644 --- a/servers/visual/rasterizer_dummy.h +++ b/servers/visual/rasterizer_dummy.h @@ -679,7 +679,7 @@ public: virtual void begin_scene(RID p_viewport_data,RID p_env,VS::ScenarioDebugMode p_debug); virtual void begin_shadow_map( RID p_light_instance, int p_shadow_pass ); - virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection); + virtual void set_camera(const Transform& p_world,const CameraMatrix& p_projection,bool p_ortho_hint); virtual void add_light( RID p_light_instance ); ///< all "add_light" calls happen before add_geometry calls diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp index 52e5c21272..3fc90fd46d 100644 --- a/servers/visual/visual_server_raster.cpp +++ b/servers/visual/visual_server_raster.cpp @@ -6302,7 +6302,7 @@ void VisualServerRaster::_render_no_camera(Viewport *p_viewport,Camera *p_camera else environment=p_scenario->fallback_environment; - rasterizer->set_camera(Transform(),CameraMatrix()); + rasterizer->set_camera(Transform(),CameraMatrix(),false); rasterizer->begin_scene(p_viewport->viewport_data,environment,p_scenario->debug); rasterizer->set_viewport(viewport_rect); rasterizer->end_scene(); @@ -6318,7 +6318,8 @@ void VisualServerRaster::_render_camera(Viewport *p_viewport,Camera *p_camera, S /* STEP 1 - SETUP CAMERA */ CameraMatrix camera_matrix; - + bool ortho=false; + switch(p_camera->type) { case Camera::ORTHOGONAL: { @@ -6330,6 +6331,7 @@ void VisualServerRaster::_render_camera(Viewport *p_viewport,Camera *p_camera, S p_camera->vaspect ); + ortho=true; } break; case Camera::PERSPECTIVE: { @@ -6341,12 +6343,13 @@ void VisualServerRaster::_render_camera(Viewport *p_viewport,Camera *p_camera, S p_camera->vaspect ); + ortho=false; } break; } - rasterizer->set_camera(p_camera->transform, camera_matrix); + rasterizer->set_camera(p_camera->transform, camera_matrix,ortho); Vector planes = camera_matrix.get_projection_planes(p_camera->transform); From c845c2a8276c61323416139790962a096a8d956e Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Thu, 11 Jun 2015 10:03:33 -0300 Subject: [PATCH 2/2] added icon --- demos/2d/space_shooter/engine.cfg | 1 + demos/2d/space_shooter/icon.png | Bin 0 -> 6931 bytes 2 files changed, 1 insertion(+) create mode 100644 demos/2d/space_shooter/icon.png diff --git a/demos/2d/space_shooter/engine.cfg b/demos/2d/space_shooter/engine.cfg index 12fd49b6e9..8047cebdd3 100644 --- a/demos/2d/space_shooter/engine.cfg +++ b/demos/2d/space_shooter/engine.cfg @@ -2,6 +2,7 @@ name="Simple Shooter" main_scene="res://main_menu.scn" +icon="res://icon.png" [autoload] diff --git a/demos/2d/space_shooter/icon.png b/demos/2d/space_shooter/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1df2bf5d9d3adddc8c7b94780c5e7ac0472350a5 GIT binary patch literal 6931 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