设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3177|回复: 12
打印 上一主题 下一主题

[讨论] 求游戏修改美化优化【弹球小游戏】【已送出6V】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2010-8-11
帖子
96
跳转到指定楼层
1
发表于 2011-8-21 11:25:55 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 草莓君 于 2011-8-22 11:31 编辑

花了两天做了个纯事件弹球游戏
做到现在总算基本完成了游戏内容
这种弹球游戏各个小游戏网站都有

但用RM XP做也许有些难度
所以我尝试了下
压缩包内有说明
Project2.rar (155.92 KB, 下载次数: 278)
未脱离RM 运行
因为还待修改啥的
求大家帮帮忙
测试下BUG啊、美化一下啊等等
有能力的人请回帖或PM我

水区人比较多所以这玩意发水区了

PS:非格子判断,是用图片弄的,像素判断

查看分数相关:先按F9



魂淡啊,大家都不帮我
算了,帮忙有V奖励就是了

点评

正在制作中....请等待~~~  发表于 2011-8-21 15:29

Lv1.梦旅人

梦石
0
星屑
50
在线时间
461 小时
注册时间
2010-6-28
帖子
467
13
发表于 2011-8-23 16:30:40 | 只看该作者
本帖最后由 47731089 于 2011-8-23 17:28 编辑

弹球小游戏V2完工
和上一个版本相比,优化美化了更多内容。

首先增加了挡板的选择,
包括默认一共有16种档板,每种挡板附加的属性也不同
可以用金钱来购买挡板~~~


然后增加了新的模式:
生存模式
这个模式需要用到攻击力和防御力了
伤害的值的计算公式为
角色攻击力-对方防御力+弹球速度X2
(原来X3,不过威力觉得太恐怖了~~所以改为2)
还有美化了一下血槽

另外扩充了一些地图
增加了一些天气效果~~

在魔王模式中,可以使用道具
目前有10种,可以自己加
道具是等待一定时间后,自动获得,
按下A键使用,按下S键查看说明
还有荣誉模式,就不多介绍了
放在这里供测试
附件就在这里了,这个算是最终版
功能就不再开发了,如果有BUG还请通知
显示问题已经修复
弹球小游戏V2.rar (4.55 MB, 下载次数: 19)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2010-8-11
帖子
96
12
 楼主| 发表于 2011-8-22 11:22:03 | 只看该作者
47731089 发表于 2011-8-22 11:05
(如果LZ只是想做弹来弹去的普通弹球,那确实复杂了点)
不过如果不这样,增加新的模式,那么就不够吸引人 ...

我指的是某些东西有些累赘吧……
比如说刚开始的标题,一个小游戏而已,没必要做那么华丽……

点评

标题什么的如果想精简一下也是可以的 (那个,华丽的标题是我的习惯问题)  发表于 2011-8-22 15:23
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
461 小时
注册时间
2010-6-28
帖子
467
11
发表于 2011-8-22 11:05:47 | 只看该作者
(如果LZ只是想做弹来弹去的普通弹球,那确实复杂了点)
不过如果不这样,增加新的模式,那么就不够吸引人。
那就成了玩下必删的游戏,所以增加耐玩性还是很重要。
-----------还有剩下的模式我会继续开发的。
但是如果不懂的话可以发消息给我。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2011-3-18
帖子
7
10
发表于 2011-8-22 10:32:22 | 只看该作者
谢谢楼主!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
461 小时
注册时间
2010-6-28
帖子
467
9
发表于 2011-8-22 10:32:16 | 只看该作者
本帖最后由 47731089 于 2011-8-23 16:09 编辑

把球改了,可以用变量控制大小(范围-2~5)
另外那个板子可以伸缩  具体查看变量(范围-3~5)
得分美化,结束美化

增加了人物的选择(包括1,2P)还有一个隐藏人物
还有数值显示,速是移动速度,长是板子的长度
攻击和防御暂时用不到,下个版本再用。



增加了地图的选择

有积分模式和计时模式可以选择。
附件在此,如果觉得还可以,
我就继续开发道具模式,
魔王模式,生存模式等
(再加个荣誉模式也不错。)
弹球V1.rar (3.2 MB, 下载次数: 66)
注意更新了V2版,请往下看

点评

你先接着做吧,到时我再看看然后给奖励  发表于 2011-8-22 10:59
5V已送出,另外系统过于复杂了……  发表于 2011-8-22 10:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2011-3-18
帖子
7
8
发表于 2011-8-22 09:04:24 | 只看该作者
LZ我给你改了一下,有事没发。
Project2.zip (215 KB, 下载次数: 66)


jigi147于2011-8-22 09:07补充以下内容:
昨天下午有事没发

点评

貌似1P模式的时候,2P的移动速度较慢的时候,很诡异啊(不停的抖动?)  发表于 2011-8-22 10:35
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2010-8-11
帖子
96
7
 楼主| 发表于 2011-8-21 19:58:37 | 只看该作者
忧雪の伤 发表于 2011-8-21 16:17
我对那个 ball 很无语诶……

哪里无语了……
那可是精华啊
下次改成蛋好了
但也是○的
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
40853
在线时间
7552 小时
注册时间
2009-7-6
帖子
13509

开拓者贵宾

6
发表于 2011-8-21 16:49:54 | 只看该作者
本帖最后由 fux2 于 2011-8-21 16:54 编辑

以下脚本插入到所有脚本最上方XD
传说中因为各种BUG坑了的弹球
  1. class Ball
  2.   attr_accessor:x
  3.   attr_accessor:y
  4.   attr_accessor:vx
  5.   attr_accessor:vy
  6.   attr_accessor:size
  7.   attr_accessor:pass
  8.   attr_accessor:fucked
  9.   def initialize(x=10,y=550,vx=5,vy=-25)
  10.     @x = x
  11.     @y = y
  12.     @vx = vx+rand(7)
  13.     @vy = vy-3+rand(7)
  14.     @size = 5
  15.     @last_size = -1
  16.     @pass = false
  17.     @fucked = false
  18.     @sprite = Sprite.new
  19.     @sprite.bitmap = Bitmap.new(10,10)
  20.     update
  21.   end
  22.   def update
  23.     if @last_size != @size
  24.     re
  25.     @last_size = @size
  26.   end
  27.     @sprite.x = @x unless @sprite.disposed?
  28.     @sprite.y = @y unless @sprite.disposed?
  29.   end
  30.   def re
  31.     @sprite.dispose unless @sprite.disposed?
  32.     @sprite = Sprite.new
  33.     @sprite.bitmap = Bitmap.new(@size*2,@size*2)
  34.     @x -= @size-@last_size
  35.     @y -= @size-@last_size
  36.     for i in 0...360
  37.       @sprite.bitmap.set_pixel(Math::sin(i)*@size+@size,Math::cos(i)*@size+@size,Color.new(255,255,255,255))
  38.     end
  39.   end
  40.   def fuck
  41.     @sprite.dispose
  42.     @fucked = true
  43.   end
  44. end
  45. class Block
  46.   attr_accessor:x
  47.   attr_accessor:y
  48.   attr_accessor:width
  49.   attr_accessor:height
  50.   attr_accessor:life
  51.   attr_accessor:last_life
  52.   attr_accessor:fucked
  53.   def initialize(x,y,l)
  54.     @life = l
  55.     @last_life = -1
  56.     @x = x
  57.     @y = y
  58.     @fucked = false
  59.     @width = 40
  60.     @height = 10
  61.     @sprite = Sprite.new
  62.     @sprite.bitmap = Bitmap.new(@width,@height)
  63.     update
  64.   end
  65.   def fuck
  66.     @sprite.dispose
  67.     @fucked = true
  68.   end
  69.   def update
  70.     if @last_life != @life
  71.       re
  72.       @last_life = @life
  73.     end
  74.     @sprite.x = @x if @sprite
  75.     @sprite.y = @y if @sprite
  76.   end
  77.   def re
  78.     @sprite.dispose unless @sprite.disposed?
  79.     @sprite = Sprite.new
  80.     @sprite.bitmap = Bitmap.new(@width,@height)
  81.     @sprite.bitmap.fill_rect(0,0,@width,10,Color.new(150,255,150,255))
  82.   end
  83. end
  84. class Player
  85.   attr_accessor:x
  86.   attr_accessor:y
  87.   attr_accessor:width
  88.   attr_accessor:height
  89.   attr_accessor:vx
  90.   attr_accessor:vy
  91.   attr_accessor:ly
  92.   attr_accessor:oriy
  93.   attr_accessor:last_y
  94.   def initialize(x=180,y=440)
  95.     @x = x
  96.     @y = y
  97.     @vx = 0
  98.     @vy = 0
  99.     @oriy = y
  100.     @ly = y+20
  101.     @last_y = 0
  102.     @width = 80
  103.     @height = 10
  104.     @last_width = -1
  105.     @sprite = Sprite.new
  106.     @sprite.bitmap = Bitmap.new(@width,height)
  107.     update
  108.   end
  109.   define_method(:maxspeed){20}
  110.   def update
  111.     if @last_width != @width
  112.       re
  113.       @last_width = @width
  114.     end
  115.     @sprite.x = @x
  116.     @sprite.y = @y
  117.   end
  118.   def re
  119.     @sprite.dispose unless @sprite.disposed?
  120.     @sprite = Sprite.new
  121.     @sprite.bitmap = Bitmap.new(@width,@width)
  122.     @x -= (@width-@last_width)/2
  123.     @sprite.bitmap.fill_rect(0,0,@width,10,Color.new(255,255,255,255))
  124.   end
  125. end
  126. class Game
  127.   def initialize
  128.     @ball = []
  129.     @player = Player.new
  130.     @block = Block.new(50,50,1)
  131.     start
  132.   end
  133.   def start
  134.     shoot
  135.     Graphics.freeze
  136.     Graphics.transition
  137.     loop do
  138.       Graphics.update
  139.       Input.update
  140.       update
  141.     end
  142.   end
  143.   def shoot
  144.     @ball<<Ball.new
  145.   end
  146.   def update
  147.     @player.update if @player
  148.     @ball.each{|i| i.update} if @ball
  149.     @block.update if @block
  150.     update_player
  151.     update_ball
  152.   end
  153.   def gameover
  154.     print "GAMEOVER"
  155.     exit
  156.   end
  157.   def update_player
  158.     @player.last_y = @player.y
  159.     case Input.dir4
  160.     when 4
  161.       @player.vx > [email protected] ? @player.vx -= 2 : @player.vx = [email protected]
  162.     when 6
  163.       @player.vx < @player.maxspeed ? @player.vx += 2 : @player.vx = @player.maxspeed
  164.     end
  165.     if Input.press?(Input::C)
  166.       if @player.y < @player.ly
  167.         @player.y +=4
  168.       else
  169.         @player.y = @player.ly
  170.       end
  171.       else
  172.       if @player.y > @player.oriy
  173.         @player.y -=4
  174.       else
  175.         @player.y = @player.oriy
  176.       end
  177.     end
  178.     if Input.press?(Input::B)
  179.       shoot
  180.     end
  181.     if Input.press?(Input::A)
  182.       @player.width+=5
  183.     end
  184.     case @player.vx<=>0
  185.     when -1
  186.       @player.vx += 1
  187.     when 1
  188.       @player.vx -= 1
  189.     end
  190.     if @[email protected]<0
  191.       @player.x = 0
  192.       @[email protected]
  193.     elsif @[email protected][email protected]>640
  194.       @player.x = [email protected]
  195.       @[email protected]
  196.     end
  197.     @player.x += @player.vx
  198.   end
  199.   def update_ball
  200.     power = @player.y - @player.last_y
  201.     @ball.each_with_index{|i,j|
  202.       i.fuck if i.y >= 550
  203.       if i.fucked
  204.         @ball.delete_at(j)
  205.         next
  206.       end
  207.       i.vy += 1
  208.       if i.vy == 0
  209.         case i.vy<=>0
  210.         when -1..0
  211.           i.vy = 1
  212.         when 1
  213.           i.vy = -1
  214.         end
  215.       end
  216.       temp = ytouch(i,@player)
  217.       if i.x+i.size*2+i.vx>@player.x && i.x+i.vx<@[email protected] && temp
  218.         case temp
  219.         when 8
  220.           i.y = @player.y-i.size*2
  221.           i.vy=-i.vy+2+power*2
  222.           i.x+=i.vx
  223.           i.vx+=rand(3)-1
  224.         when 4
  225.           i.x = @player.x-i.size*2
  226.           i.vx=-i.vx
  227.           i.y+=i.vy
  228.         when 6
  229.           i.x = @[email protected]
  230.           i.vx=-i.vx
  231.           i.y+=i.vy
  232.         when 2
  233.           i.y = @player.y+10
  234.           i.vy=-i.vy+2+power*2
  235.           i.x+=i.vx
  236.           i.vx+=rand(3)-1
  237.         end
  238.       else
  239.         i.x+=i.vx
  240.         i.y+=i.vy
  241.       end
  242.             if i.x+i.vx<0
  243.         i.x=0
  244.         i.vx=-i.vx
  245.       end
  246.       if i.x+i.size*2+i.vx>640
  247.         i.x=640-i.size*2
  248.         i.vx=-i.vx
  249.       end
  250.       if i.y+i.vy<0
  251.         i.y=0
  252.         i.vy=-i.vy
  253.       end}
  254.   end
  255.   def ytouch(i,q)
  256.     if i.y+i.vy+i.size*2>=q.y
  257.       for j in [i.y,i.y+i.vy].min..[i.y,i.y+i.vy].max
  258.         if j+i.size*2>=q.y && j<=q.y+q.height
  259.           adax = (j-i.y-i.vy-i.size)*i.vx/i.vy
  260.           return 8 if j+i.size*2==q.y
  261.           return 2 if j == q.y+q.height
  262.           return 4 if i.x+adax<q.x+q.width/2
  263.           return 6 if i.x+adax>=q.x+q.width/2
  264.         end
  265.       end
  266.     end
  267.     return false
  268.   end
  269. end
  270. print "press left,right to move , X for shoot, C for beat ,Z for stretch"
  271. Game.new
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2011-3-18
帖子
7
5
发表于 2011-8-21 16:30:15 | 只看该作者
能不能改为标题画面选人数?


jigi147于2011-8-21 16:45补充以下内容:
F9没法看分数……

点评

标题画面选人数什么的,改下默认脚本就行了,另外查看分数的什么请看主楼  发表于 2011-8-21 18:26
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-3-4 05:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表