当前位置: 首页 > wzjs >正文

重庆渝中区企业网站建设联系电话如何做企业网页

重庆渝中区企业网站建设联系电话,如何做企业网页,公司要建设网站,肇庆专业网站建设服务推荐使用Go语言的ebiten库来开发一个2D小游戏。下面是一个创新设计——《弹射挑战》的代码示例,包含等级、物理弹射、随机地形和本地排行榜功能。 package mainimport ("encoding/json""image/color""log""math""mat…

推荐使用Go语言的ebiten库来开发一个2D小游戏。下面是一个创新设计——《弹射挑战》的代码示例,包含等级、物理弹射、随机地形和本地排行榜功能。

package mainimport ("encoding/json""image/color""log""math""math/rand""os""sort""github.com/hajimehoshi/ebiten/v2""github.com/hajimehoshi/ebiten/v2/ebitenutil""github.com/hajimehoshi/ebiten/v2/inpututil"
)const (screenWidth  = 800screenHeight = 600gravity      = 0.5
)type Player struct {X, Y         float64Angle        float64Power        float64Score        intLevel        intXP           intUpgrades     map[string]intProjectiles  []*Projectile
}type Projectile struct {X, Y       float64Vx, Vy     float64Active     bool
}type Target struct {X, Y  float64Value int
}type Game struct {Player          *PlayerTargets         []*TargetCurrentLevel    intLaunched        boolRanking         []ScoreEntryShowRanking     boolUpgradeChoices  []string
}type ScoreEntry struct {Name  stringScore intLevel int
}func (g *Game) SaveRanking() {file, _ := json.MarshalIndent(g.Ranking, "", " ")_ = os.WriteFile("ranking.json", file, 0644)
}func (g *Game) LoadRanking() {if file, err := os.ReadFile("ranking.json"); err == nil {_ = json.Unmarshal(file, &g.Ranking)}
}func (g *Game) AddScore(name string, score int, level int) {g.Ranking = append(g.Ranking, ScoreEntry{Name: name, Score: score, Level: level})sort.Slice(g.Ranking, func(i, j int) bool {return g.Ranking[i].Score > g.Ranking[j].Score})if len(g.Ranking) > 10 {g.Ranking = g.Ranking[:10]}
}func NewGame() *Game {g := &Game{Player: &Player{X:        100,Y:        screenHeight - 100,Upgrades: make(map[string]int),},CurrentLevel: 1,}g.LoadRanking()g.GenerateLevel()return g
}func (g *Game) GenerateLevel() {g.Targets = nil// 生成随机地形和目标for i := 0; i < 3+g.CurrentLevel; i++ {g.Targets = append(g.Targets, &Target{X:     float64(400 + rand.Intn(300)),Y:     float64(200 + rand.Intn(200)),Value: 100 * g.CurrentLevel,})}
}func (g *Game) fire() {p := g.Playerradians := p.Angle * math.Pi / 180power := p.Power * 5proj := &Projectile{X:       p.X,Y:       p.Y,Vx:      math.Cos(radians) * power,Vy:      math.Sin(radians) * power,Active:  true,}p.Projectiles = append(p.Projectiles, proj)
}func (g *Game) Update() error {p := g.Player// 升级选择if len(g.UpgradeChoices) > 0 {if inpututil.IsKeyJustPressed(ebiten.Key1) {p.Upgrades[g.UpgradeChoices[0]]++g.UpgradeChoices = nil}if inpututil.IsKeyJustPressed(ebiten.Key2) {p.Upgrades[g.UpgradeChoices[1]]++g.UpgradeChoices = nil}return nil}// 控制逻辑if ebiten.IsKeyPressed(ebiten.KeyLeft) {p.Angle--}if ebiten.IsKeyPressed(ebiten.KeyRight) {p.Angle++}if ebiten.IsKeyPressed(ebiten.KeyUp) {p.Power++}if ebiten.IsKeyPressed(ebiten.KeyDown) {p.Power--}if inpututil.IsKeyJustPressed(ebiten.KeySpace) && !g.Launched {g.fire()g.Launched = true}// 更新弹道for _, proj := range p.Projectiles {if proj.Active {proj.Vy += gravityproj.X += proj.Vxproj.Y += proj.Vy// 碰撞检测for _, t := range g.Targets {dx := proj.X - t.Xdy := proj.Y - t.Yif dx*dx+dy*dy < 400 {p.Score += t.Valuep.XP += t.Value / 10t.Value = 0}}if proj.Y > screenHeight-50 {proj.Active = falseg.Launched = false}}}// 升级检查if p.XP >= 1000 {p.Level++p.XP -= 1000g.UpgradeChoices = []string{"Power+", "MultiShot"}}return nil
}func (g *Game) Draw(screen *ebiten.Image) {// 绘制玩家ebitenutil.DrawCircle(screen, g.Player.X, g.Player.Y, 10, color.RGBA{0, 255, 0, 255})// 绘制弹道线radians := g.Player.Angle * math.Pi / 180endX := g.Player.X + math.Cos(radians)*50endY := g.Player.Y + math.Sin(radians)*50ebitenutil.DrawLine(screen, g.Player.X, g.Player.Y, endX, endY, color.White)// 绘制目标和地形for _, t := range g.Targets {if t.Value > 0 {ebitenutil.DrawCircle(screen, t.X, t.Y, 20, color.RGBA{255, 0, 0, 255})}}// 绘制弹射物for _, proj := range g.Player.Projectiles {if proj.Active {ebitenutil.DrawCircle(screen, proj.X, proj.Y, 5, color.RGBA{255, 255, 0, 255})}}// 显示UI信息ebitenutil.DebugPrint(screen, "Score: "+string(g.Player.Score)+"\nLevel: "+string(g.Player.Level)+"\nXP: "+string(g.Player.XP)+"\nAngle: "+string(g.Player.Angle)+"\nPower: "+string(g.Player.Power))// 显示升级选项if len(g.UpgradeChoices) > 0 {ebitenutil.DebugPrint(screen, "Choose Upgrade:\n1. "+g.UpgradeChoices[0]+"\n2. "+g.UpgradeChoices[1])}
}func (g *Game) Layout(outsideWidth, outsideHeight int) (int, int) {return screenWidth, screenHeight
}func main() {ebiten.SetWindowSize(screenWidth, screenHeight)ebiten.SetWindowTitle("弹射挑战")if err := ebiten.RunGame(NewGame()); err != nil {log.Fatal(err)}
}

游戏特色说明:

  1. 物理弹射系统:通过调整角度和力度进行发射
  2. 随机生成地形:每个关卡目标位置随机
  3. RPG升级系统:通过得分积累经验升级
  4. 技能选择系统:升级时可选择不同强化方向
  5. 本地排行榜:自动保存前10名成绩
  6. 渐进难度:关卡越高目标越多

操作方法:

  • 方向键←→调整角度
  • 方向键↑↓调整力度
  • 空格键发射
  • 数字键选择升级

扩展建议:

  1. 添加更多升级选项(弹射数量、特殊能力等)
  2. 增加障碍物和移动目标
  3. 添加粒子特效
  4. 实现网络排行榜
  5. 增加成就系统
  6. 添加音效和背景音乐

这个游戏结合了物理弹射、RPG升级和策略选择元素,通过简单的操作提供深度游戏体验。玩家需要不断优化发射策略并选择适合的升级路线来挑战更高分数。


文章转载自:

http://xlnkEr45.qbzfp.cn
http://p8nfEwRJ.qbzfp.cn
http://XzxvDeNM.qbzfp.cn
http://sZ4YKXKA.qbzfp.cn
http://mISXh5fL.qbzfp.cn
http://swnQXMRA.qbzfp.cn
http://cr5d64xx.qbzfp.cn
http://5lWx586a.qbzfp.cn
http://z65DxE5x.qbzfp.cn
http://g0oYvyEe.qbzfp.cn
http://iA3e1Nx0.qbzfp.cn
http://szOnSw1A.qbzfp.cn
http://fZFipFAS.qbzfp.cn
http://oU5Xyqpw.qbzfp.cn
http://8zkMMSnn.qbzfp.cn
http://i0oHWNJy.qbzfp.cn
http://ZTNMYqPV.qbzfp.cn
http://4v2D0QCv.qbzfp.cn
http://hCFtcwd1.qbzfp.cn
http://k81qrUsI.qbzfp.cn
http://FUVEF89H.qbzfp.cn
http://E3S39fhN.qbzfp.cn
http://zk9U4ndm.qbzfp.cn
http://VFhUDj0j.qbzfp.cn
http://XMrP8wfa.qbzfp.cn
http://oIpLUTLP.qbzfp.cn
http://29TodDVj.qbzfp.cn
http://wldXUpFE.qbzfp.cn
http://j6XHhqpl.qbzfp.cn
http://5l9R2soM.qbzfp.cn
http://www.dtcms.com/wzjs/752709.html

相关文章:

  • 公司手机网站建设网站开发雷小天
  • 网站开发相关书籍淘宝商城网站建设
  • 运城姚孟网站建设营销总监
  • 郑州一建集团工程建设有限公司网站遵义网约车平台哪家好
  • cms建站步骤百度网盘下载官网
  • 凡科建站如何制作论坛中国建设招标网上查询
  • 传奇网站模块下载广州番禺网站公司哪家好
  • 建网站没有公司资质宝安关于网站建设
  • 涉县企业做网站推广win优化大师有用吗
  • 网站被禁止访问怎么打开免费素材库网
  • 赣州北京网站建设二级域名做很多网站
  • 网站搭建联系方式河南建设工程信息网下载
  • 网站开发书wordpress 数据库设计
  • 沙洋县住房和城乡建设局网站网站的pv是什么
  • 网站广告位怎么做荆门市网站建设
  • 做网站要多少钱呀一个seo良好的网站其主要流量往往来自
  • 江苏省医院网站建设管理规范微信网页版注册
  • 医院网站管理制度苏州工业园区官网
  • 资源下载网站源码wordpress消息系统
  • 如何查看网站是否被百度收录自己建设网站要花多少钱
  • 做网站审批号必须要网站建设技术外包
  • wordpress全站注明WordPress 主页缩略图链接
  • 乐陵网站服务在哪一条房产网站建设价格
  • 新校区建设网站管理规定百度浏览器主页网址
  • 网站网页设计模板下载wordpress显示空白页
  • 工信部 加强网站备案怎样做网站备案
  • 手机网站怎么设置成电脑版的邯郸制作网站的公司
  • 网站安全建设情况报告闵行区网站设计
  • 成都公布最新轨迹秦皇岛网络优化排名
  • 网站建设中如何使用字体2345网址导航怎么卸载