Skip to content
This repository has been archived by the owner on Mar 1, 2021. It is now read-only.

Сделал дз. #7

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Сделал дз. #7

wants to merge 4 commits into from

Conversation

EugSh
Copy link

@EugSh EugSh commented Apr 11, 2019

Дз

Copy link

@otopba otopba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо сделана работа.
Только не много не понял механику игры. Если просто кликать в центр кольца, то считается гол

private Paint dotPaint = new Paint();
private Path dotPath = new Path();
private static final int DEFAULT_POINT_COLOR = Color.BLACK;
private static final int DEFAULT_POINT_STROKE_WIDTH_DP = 5;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это можно сохранить в dimes

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

что значит dimes?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dimens.xml используют для хранения размеров

int rightPadding = getPaddingRight();
int topPadding = getPaddingTop();
int bottomPadding = getPaddingBottom();
int w = getWidth();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не испльзуется

@@ -1,13 +1,119 @@
package ru.ok.technopolis.basketball;

import android.animation.ValueAnimator;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аниматоры стоит сохранять в поля и во время уничтожения активити останавливать анимации

private float vx;
private float vy;

Point(float coordinate) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если этот класс в перспективе может быть использован во вне текущего пакета, то лучше сразу объявить public

@@ -5,6 +5,47 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<FrameLayout
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не понял зачем тут констрейнт? Можно тогда сделать базовый лейаут фреймом

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Круто!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не могу понять, тут надо что-то исправлять?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет, не нужно. Молодец что заюзал атрибуты

@EugSh
Copy link
Author

EugSh commented Apr 22, 2019

там же не просто центр кольца, а прямоугольник, в который нужно кидать мяч, чтобы он отскочил в кольцо.

@otopba
Copy link

otopba commented Apr 29, 2019

там же не просто центр кольца, а прямоугольник, в который нужно кидать мяч, чтобы он отскочил в кольцо.

Это ок. Но почему я просто кликаю и выигрываю. Разве не нужно бросать мяч?)

@EugSh
Copy link
Author

EugSh commented May 21, 2019

поправил, но что-то случилось и появилась эта ошибка, я не понимаю, что с этим делать C:\Android\basketball_homework\basketball_homework\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_0\resources_ap

@@ -33,8 +30,8 @@ public FieldView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int pointStrokeWidthFromAttr = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DEFAULT_POINT_STROKE_WIDTH_DP, displayMetrics) + 0.5f);
int pointRadiusFromAttr = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DEFAULT_POINT_RADIUS_DP, displayMetrics) + 0.5f);
int pointStrokeWidthFromAttr = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, R.dimen.default_point_stroke_width, displayMetrics) + 0.5f);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что бы каждый раз не делать +0.5f и не забывать про это, лучше сделать метод для перевода из dp в px

@@ -29,6 +29,7 @@
private Context context;
private float G = 9800;
private float maxDistance;
ValueAnimator animator;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно сделать private

@@ -79,8 +80,12 @@ void calculateInitialCondition(float x0, float y0, float vx0, float vy0) {
}

void initialiseAnimation() {
if (isScored(startPoint.getX(), fieldView.getHeight() - startPoint.getY())) {
Toast.makeText(context, R.string.cheater, Toast.LENGTH_SHORT).show();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Интересное решение =)

@Override
protected void onPause() {
super.onPause();
animator.cancel();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

animator стоит проверить на нул. Иначе, если не делать бросков и свернуть приложение будет креш

@otopba
Copy link

otopba commented May 21, 2019

поправил, но что-то случилось и появилась эта ошибка, я не понимаю, что с этим делать C:\Android\basketball_homework\basketball_homework\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_0\resources_ap

Не сталкивался с таким. Попробуй почистить build папку

@EugSh
Copy link
Author

EugSh commented May 22, 2019

я не понимаю, что произошло, но сегодня утром прокт начал собираться и запускаться. той ошибки больше не было

@EugSh
Copy link
Author

EugSh commented May 31, 2019

нужно ли еще что-то исправлять?

public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
velocityTracker = VelocityTracker.obtain();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перед тем как взять новый velocityTracker лучше проверить что нет старого, а если есть, то сделать ему recycle

@otopba
Copy link

otopba commented May 31, 2019

Работа принята
10 балов

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants